Skip to content
This repository


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Git Source Code Mirror - This is a publish-only repository and all pull requests are ignored. Please follow Documentation/SubmittingPatches procedure for any of your improvements.

branch: master

Merge branch 'maint'

* maint:
  Start preparing for 2.0.2
latest commit 66f467c3e6
Junio C Hamano gitster authored
Documentation Merge branch 'maint'
block-sha1 Merge branch 'jk/pack-bitmap'
builtin Merge branch 'mg/verify-commit'
compat Merge branch 'sk/mingw-unicode-spawn-args'
contrib Merge branch 'ep/avoid-test-a-o'
ewah ewah_bitmap.c: do not assume size_t and eword_t are the same size
git-gui Merge git://
gitk-git Merge git://
gitweb Merge branch 'jl/nor-or-nand-and'
mergetools mergetools: add vimdiff3 mode
perl Merge branch 'mm/pager-less-sans-S'
po fr: a lot of good fixups
ppc fix openssl headers conflicting with custom SHA1 implementations
t Merge branch 'dt/refs-check-refname-component-sse-fix'
templates sample pre-commit hook: use --bool when retrieving config var
vcs-svn strbuf: introduce starts_with() and ends_with()
xdiff C: have space around && and || operators
.gitattributes .gitattributes: detect 8-space indent in shell scripts
.gitignore Merge branch 'tb/unicode-6.3-zero-width'
.mailmap .mailmap: switch to Thomas Rast's personal address
COPYING Update COPYING with GPLv2 with new FSF address
GIT-VERSION-GEN First batch for 2.1
INSTALL Typo fix: replacing it's -> its
LGPL-2.1 provide a copy of the LGPLv2.1
Makefile verify-commit: scriptable commit signature verification
README Merge branch 'ta/doc-no-small-caps'
RelNotes First batch for 2.1
abspath.c Merge branch 'ap/path-max'
aclocal.m4 configure: use AC_LANG_PROGRAM consistently
advice.c refactor skip_prefix to return a boolean
advice.h Merge branch 'jc/push-2.0-default-to-simple'
alias.c use skip_prefix to avoid magic numbers
alloc.c commit: push commit_index update into alloc_commit_node
archive-tar.c archive-tar: use parse_config_key when parsing config
archive-zip.c Merge branch 'sb/archive-zip-double-assignment-fix' into maint
archive.c Merge branch 'rm/strchrnul-not-strlen'
archive.h archive: convert to use parse_pathspec
argv-array.c argv-array: drop "detach" code
argv-array.h argv-array: drop "detach" code
attr.c attr.c: use ALLOC_GROW() in handle_attr_line()
attr.h correct a few doubled-word nits in comments and documentation
base85.c base85.c: have SP around arithmetic operators
bisect.c Merge branch 'nd/log-show-linear-break'
bisect.h Move print_commit_list to libgit.a
blob.c Replace parse_blob() with an explanatory comment
blob.h Replace parse_blob() with an explanatory comment
branch.c refactor skip_prefix to return a boolean
branch.h checkout: suppress tracking message with "-q"
builtin.h verify-commit: scriptable commit signature verification
bulk-checkin.c finish_tmp_packfile():use strbuf for pathname construction
bulk-checkin.h bulk-checkin: replace fast-import based implementation
bundle.c Merge branch 'nd/log-show-linear-break'
bundle.h Merge branch 'jc/unseekable-bundle'
cache-tree.c Merge branch 'rm/strchrnul-not-strlen'
cache-tree.h Convert "struct cache_entry *" to "const ..." wherever possible
cache.h Merge branch 'kb/path-max-must-go' use the $(...) construct for command substitution
check-racy.c ce_match_stat, run_diff_files: use symbolic constants for readability
check_bindir check_bindir: avoid "test <cond> -a/-o <cond>"
color.c make color.ui default to 'auto'
color.h want_color: automatically fallback to color.ui
column.c refactor skip_prefix to return a boolean
column.h column: support piping stdout to external git-column process
combine-diff.c Merge branch 'mk/show-s-no-extra-blank-line-for-merges'
command-list.txt verify-commit: scriptable commit signature verification
commit-slab.h commit-slab: provide a static initializer
commit.c Merge branch 'mg/verify-commit'
commit.h reuse cached commit buffer when parsing signatures
config.c refactor skip_prefix to return a boolean Merge branch 'jc/remove-export-from-config-mak-in'
config.mak.uname Merge branch 'sk/mingw-dirent' Merge branch 'ks/tree-diff-nway'
connect.c use skip_prefix to avoid magic numbers
connect.h connect.c: refactor url parsing
connected.c Merge branch 'nd/shallow-clone'
connected.h connected.c: add new variant that runs with --shallow-file
convert.c use skip_prefix to avoid magic numbers
convert.h typofix: in-code comments
copy.c preserve mtime of local clone
credential-cache--daemon.c refactor skip_prefix to return a boolean
credential-cache.c credential-cache: ignore "connection refused" errors
credential-store.c sparse: Fix mingw_main() argument number/type errors
credential.c refactor skip_prefix to return a boolean
credential.h git credential fill: output the whole 'struct credential'
csum-file.c Merge branch 'jk/sha1write-void'
csum-file.h Merge branch 'jk/sha1write-void'
ctype.c ctype: support iscntrl, ispunct, isxdigit and isprint
daemon.c daemon: use skip_prefix to avoid magic numbers
date.c i18n: fix uncatchable comments for translators in date.c
decorate.c decorate.c: compact table when growing
decorate.h decorate: allow const objects to be decorated
delta.h comments: fix misuses of "nor"
diff-delta.c create_delta_index: simplify condition always evaluating to true
diff-lib.c Merge branch 'jk/diff-files-assume-unchanged' into maint
diff-no-index.c Merge branch 'jc/fix-diff-no-index-diff-opt-parse'
diff.c stat_opt: check extra strlen call
diff.h Merge branch 'ks/tree-diff-nway'
diffcore-break.c diffcore-break: don't divide by zero
diffcore-delta.c Fix diff -B/--dirstat miscounting of newly added contents
diffcore-order.c Merge branch 'nd/no-more-fnmatch'
diffcore-pickaxe.c pickaxe: simplify kwset loop in contains()
diffcore-rename.c Merge branch 'dd/use-alloc-grow'
diffcore.h Merge branch 'jk/diff-filespec-cleanup'
dir.c cleanup duplicate name_compare() functions
dir.h pathspec: pass directory indicator to match_pathspec_item()
editor.c editor: use canonicalized absolute path
entry.c Merge branch 'mh/remove-subtree-long-pathname-fix' into maint
environment.c setup_git_env(): introduce git_path_from_env() helper
exec_cmd.c run-command: treat inaccessible directories as ENOENT
exec_cmd.h Add the LAST_ARG_MUST_BE_NULL macro
fast-import.c fast-import: refactor parsing of spaces
fetch-pack.c Merge branch 'jk/skip-prefix'
fetch-pack.h Merge branch 'nd/shallow-clone'
fmt-merge-msg.h fmt-merge-msg: use branch.$name.description
fsck.c Merge branch 'jk/skip-prefix'
fsck.h Check the format of more printf-type functions i18n: help: mark strings for translation
gettext.c gettext.c: detect the vsnprintf bug at runtime
gettext.h Merge branch 'nd/fetch-status-alignment'
git-add--interactive.perl Merge branch 'jl/nor-or-nand-and' Merge branch 'jl/nor-or-nand-and'
git-archimport.perl git-archimport: use a lowercase "usage:" string avoid "test <cond> -a/-o <cond>"
git-compat-util.h Merge branch 'jk/skip-prefix'
git-cvsexportcommit.perl git-cvsexportcommit: use a lowercase "usage:" string
git-cvsimport.perl git-cvsimport: use a lowercase "usage:" string
git-cvsserver.perl Merge branch 'ak/cvsserver-stabilize-use-of-hash-keys' difftool: display the number of files in the diff queue in the prompt
git-difftool.perl difftool: support repositories with .git-files Merge branch 'lc/filter-branch-too-many-refs' git-instaweb: add support for Apache 2.4 merge-octopus: Work around environment issue on Windows Merge branch 'kb/p4merge' Convert to use quiet option when available remove #!interpreter line from shell libraries avoid "test <cond> -a/-o <cond>" git-p4: fix submit in non --prepare-p4-only mode remove #!interpreter line from shell libraries Sync with maint add variable to use the stuck-long mode Merge branch 'km/avoid-non-function-return-in-rebase' Merge branch 'ep/avoid-test-a-o' Merge branch 'bc/fix-rebase-merge-skip' Merge branch 'rr/rebase-autostash-fix'
git-relink.perl git-relink: use a lowercase "usage:" string Merge branch 'ep/shell-assign-and-export-vars' Merge branch 'lt/request-pull'
git-send-email.perl Merge branch 'mt/send-email-cover-to-cc' remove #!interpreter line from shell libraries pager: remove 'S' from $LESS by default Merge branch 'ep/shell-assign-and-export-vars' avoid "echo" path-like values
git-svn.perl Git 2.0: git svn: Set default --prefix='origin/' if --prefix is not g… use the $( ... ) construct for command substitution
git.c Merge branch 'mg/verify-commit'
git.rc Makefile: Fix compilation of Windows resource file spec: add missing build dependency
gpg-interface.c gpg-interface: provide access to the payload
gpg-interface.h gpg-interface: provide access to the payload
graph.c graph: fix coloring around octopus merges
graph.h Revert "graph.c: mark private file-scope symbols as static"
grep.c Merge branch 'as/grep-fullname-config'
grep.h grep: allow to use textconv filters
hashmap.c add a hashtable implementation that supports O(1) removal
hashmap.h hashmap.h: use 'unsigned int' for hash-codes everywhere
help.c use skip_prefix to avoid repeated calculations
help.h help: add help_unknown_ref()
hex.c get_sha1_hex(): do not read past a NUL character
http-backend.c use skip_prefix to avoid magic numbers
http-fetch.c Merge branch 'ab/enable-i18n'
http-push.c Merge branch 'jk/xstrfmt'
http-walker.c use xstrfmt to replace xmalloc + sprintf
http.c Merge branch 'jk/skip-prefix'
http.h http: optionally extract charset parameter from content-type
ident.c Merge branch 'jk/split-broken-ident' into maint
imap-send.c imap-send: use skip_prefix instead of using magic numbers
khash.h pack-bitmap: add support for bitmap indexes
kwset.c typofix: in-code comments
kwset.h Adapt the kwset code to Git
levenshtein.c Fix typos / spelling in comments
levenshtein.h Typofixes outside documentation area
line-log.c line-log: use commit_list_append() instead of duplicating its code
line-log.h range-set: publish API for re-use by git-blame -L
line-range.c line-range: reject -L line numbers less than 1
line-range.h line-range: teach -L/RE/ to search relative to anchor point
list-objects.c Merge branch 'jk/pack-bitmap'
list-objects.h list-objects: reduce one argument in mark_edges_uninteresting
ll-merge.c convert some config callbacks to parse_config_key
ll-merge.h merge-recursive --patience
lockfile.c lockfile: fix buffer overflow in path handling
log-tree.c reuse cached commit buffer when parsing signatures
log-tree.h pretty: share code between format_decoration and show_decorations
mailmap.c Merge branch 'jc/strcasecmp-pure-inline'
mailmap.h mailmap: simplify map_user() interface
match-trees.c use xstrfmt to replace xmalloc + sprintf
merge-blobs.c Which merge_file() function do you mean?
merge-blobs.h Which merge_file() function do you mean?
merge-recursive.c Merge branch 'jk/xstrfmt'
merge-recursive.h Move try_merge_command and checkout_fast_forward to libgit.a
merge.c merge: use argv_array when spawning merge strategy
mergesort.c mergesort: rename it to llist_mergesort()
mergesort.h mergesort: rename it to llist_mergesort()
name-hash.c name-hash.c: replace cache_name_compare() with memcmp(3)
notes-cache.c Merge branch 'jk/commit-buffer-length'
notes-cache.h introduce notes-cache interface
notes-merge.c commit: record buffer length in cache
notes-merge.h Move create_notes_commit() from notes-merge.c into notes-utils.c
notes-utils.c Merge branch 'jk/commit-buffer-length'
notes-utils.h commit_tree: take a pointer/len pair rather than a const strbuf
notes.c notes.c: rearrange xcalloc arguments
notes.h many small typofixes
object.c commit: record buffer length in cache
object.h Merge branch 'nd/log-show-linear-break'
pack-bitmap-write.c Use hashcpy() when copying object names
pack-bitmap.c add `ignore_missing_links` mode to revwalk
pack-bitmap.h pack-bitmap: implement optional name_hash cache
pack-check.c fsck: print progress
pack-objects.c pack-objects: use free()+xcalloc() instead of xrealloc()+memset()
pack-objects.h pack-objects: implement bitmap writing
pack-revindex.c pack-revindex.c: rearrange xcalloc arguments
pack-revindex.h do not discard revindex when re-preparing packfiles
pack-write.c finish_tmp_packfile():use strbuf for pathname construction
pack.h finish_tmp_packfile():use strbuf for pathname construction
pager.c Merge branch 'je/pager-do-not-recurse'
parse-options-cb.c prune: introduce OPT_EXPIRY_DATE() and use it
parse-options.c refactor skip_prefix to return a boolean
parse-options.h Merge branch 'jk/squelch-compiler-warning-from-funny-error-macro'
patch-delta.c compat: helper for detecting unsigned overflow
patch-ids.c patch-ids.c: use ALLOC_GROW() in add_commit()
patch-ids.h Refactor patch-id filtering out of git-cherry and git-format-patch.
path.c Windows: allow using UNC path for git repository
pathspec.c pathspec: convert some match_pathspec_depth() to ce_path_match()
pathspec.h Support pathspec magic :(exclude) and its short form :!
pkt-line.c replace {pre,suf}fixcmp() with {starts,ends}_with()
pkt-line.h comments: fix misuses of "nor"
preload-index.c symlinks: remove PATH_MAX limitation
pretty.c Merge branch 'mg/verify-commit'
prio-queue.c sort-in-topological-order: use prio-queue
prio-queue.h sort-in-topological-order: use prio-queue
progress.c i18n: mark all progress lines for translation
progress.h nicer display of thin pack completion
prompt.c Revert "prompt: clean up strbuf usage"
prompt.h prompt: use git_terminal_prompt
quote.c quote: remove sq_quote_print()
quote.h quote: remove sq_quote_print()
reachable.c clear parsed flag when we free tree buffers
reachable.h prune: show progress while marking reachable objects
read-cache.c cleanup duplicate name_compare() functions
reflog-walk.c reflog-walk.c: rearrange xcalloc arguments
reflog-walk.h Merge branch 'jk/maint-reflog-walk-count-vs-time' into maint
refs.c Merge branch 'dt/refs-check-refname-component-sse-fix'
refs.h Merge branch 'jl/remote-rm-prune'
remote-curl.c use skip_prefix to avoid repeating strings
remote-testsvn.c use strchrnul() in place of strchr() and strlen()
remote.c Merge branch 'jk/xstrfmt'
remote.h push: detect local refspec errors early
replace_object.c Merge branch 'dd/use-alloc-grow'
rerere.c pathspec: pass directory indicator to match_pathspec_item()
rerere.h rerere: convert to use parse_pathspec
resolve-undo.c Merge branch 'nd/submodule-pathspec-ending-with-slash'
resolve-undo.h convert unmerge_cache to take struct pathspec
revision.c Merge branch 'jk/commit-buffer-length'
revision.h Merge branch 'jk/pack-bitmap'
run-command.c run-command: store an optional argv_array
run-command.h run-command: store an optional argv_array
send-pack.c Merge branch 'nd/shallow-clone'
send-pack.h remote.h: replace struct extra_have_objects with struct sha1_array
sequencer.c Merge branch 'jk/xstrfmt'
sequencer.h cherry-pick, revert: add the --gpg-sign option
server-info.c update-server-info: Shorten read_pack_info_file()
setup.c Merge branch 'mw/symlinks'
sh-i18n--envsubst.c sh-i18n--envsubst: retire unused string_list_member()
sha1-array.c sha1-array.c: mark a private file-scope symbol as static
sha1-array.h sha1-array.c: mark a private file-scope symbol as static
sha1-lookup.c sha1-lookup: handle duplicate keys with GIT_USE_LOOKUP
sha1-lookup.h sha1-lookup: add new "sha1_pos" function to efficiently lookup sha1
sha1_file.c Merge branch 'rs/fix-alt-odb-path-comparison'
sha1_name.c Merge branch 'jk/xstrfmt'
shallow.c shallow: verify shallow file after taking lock
shell.c use xstrfmt to replace xmalloc + strcpy/strcat
shortlog.h pretty: Respect --abbrev option
show-index.c i18n: add infrastructure for translating Git with gettext
sideband.c sideband.c: do not use ANSI control sequence on non-terminal
sideband.h pkt-line: move LARGE_PACKET_MAX definition from sideband
sigchain.c refactor signal handling for cleanup functions
sigchain.h refactor signal handling for cleanup functions
strbuf.c strbuf: add xstrfmt helper
strbuf.h strbuf: add xstrfmt helper
streaming.c open_istream(): do not dereference NULL in the error case
streaming.h streaming: void pointer instead of char pointer
string-list.c Merge branch 'ap/log-mailmap'
string-list.h string-list: spell all values out that are given to a string_list ini…
submodule.c Merge branch 'kb/fast-hashmap'
submodule.h rm: delete .gitmodules entry of submodules removed from the work tree
symlinks.c symlinks: remove PATH_MAX limitation
tag.c replace {pre,suf}fixcmp() with {starts,ends}_with()
tag.h upload-pack: avoid parsing tag destinations
tar.h tar-tree: Introduce write_entry()
test-chmtime.c comments: fix misuses of "nor"
test-ctype.c test-ctype: add test for is_pathspec_magic
test-date.c i18n: mark relative dates for translation
test-delta.c tests: use a lowercase "usage:" string
test-dump-cache-tree.c Convert "struct cache_entry *" to "const ..." wherever possible
test-genrandom.c tests: use a lowercase "usage:" string
test-hashmap.c test-hashmap.c: drop unnecessary #includes
test-index-version.c sparse: Fix mingw_main() argument number/type errors
test-line-buffer.c replace {pre,suf}fixcmp() with {starts,ends}_with()
test-match-trees.c use 'tree-ish' instead of 'treeish'
test-mergesort.c sparse: Fix mingw_main() argument number/type errors
test-mktemp.c Improve error messages when temporary file creation fails
test-parse-options.c parse-options: remove unused OPT_SET_PTR
test-path-utils.c path-utils test: rename mingw_path function to print_path
test-prio-queue.c prio-queue: priority queue of pointers to structs
test-read-cache.c read-cache: add simple performance test
test-regex.c test-regex: Add a test to check for a bug in the regex routines
test-revision-walking.c Teach revision walking machinery to walk multiple times sequencially
test-run-command.c tests: check error message from run_command
test-scrap-cache-tree.c Add test-scrap-cache-tree
test-sha1.c test-sha1: add a binary output mode more tr portability test script fixes
test-sigchain.c t0005: use SIGTERM for sigchain test
test-string-list.c replace {pre,suf}fixcmp() with {starts,ends}_with()
test-subprocess.c sparse: Fix mingw_main() argument number/type errors
test-svn-fe.c msvc: test-svn-fe: Fix linker "unresolved external" error
test-urlmatch-normalization.c builtin/config.c: compilation fix
test-wildmatch.c stop using fnmatch (either native or compat)
thread-utils.c mingw: rename WIN32 cpp macro to GIT_WINDOWS_NATIVE
thread-utils.h thread-utils.h: simplify the inclusion
trace.c shallow.c: the 8 steps to select new commits for .git/shallow
transport-helper.c transport-helper: avoid reading past end-of-string
transport.c refactor skip_prefix to return a boolean
transport.h fetch: add --update-shallow to accept refs that update .git/shallow
tree-diff.c tree-diff: rework diff_tree() to generate diffs for multiparent cases…
tree-walk.c cleanup duplicate name_compare() functions
tree-walk.h tree-walk: finally switch over tree descriptors to contain a pre-pars…
tree.c Merge branch 'jk/free-tree-buffer'
tree.h Merge branch 'jk/free-tree-buffer'
unicode_width.h Update of unicode_width.h to Unicode Version 7.0 Makefile: allow building without perl
unix-socket.c unix-socket: do not let close() or chdir() clobber errno during cleanup
unix-socket.h credentials: add "cache" helper
unpack-trees.c Merge branch 'jk/xstrfmt'
unpack-trees.h diff-lib, read-tree, unpack-trees: mark cache_entry array paramters c… utf8: make it easier to auto-update git_wcwidth()
upload-pack.c Merge branch 'nd/log-show-linear-break'
url.c Merge branch 'jk/http-auth'
url.h url: decode buffers that are not NUL-terminated
urlmatch.c refactor skip_prefix to return a boolean
urlmatch.h config: add generic callback wrapper to parse section.<url>.key
usage.c Merge branch 'jk/a-thread-only-dies-once' into maint
userdiff.c userdiff: have 'cpp' hunk header pattern catch more C++ anchor points
userdiff.h refactor get_textconv to not require diff_filespec
utf8.c Merge branch 'tb/unicode-6.3-zero-width'
utf8.h add missing "format" function attributes
varint.c varint: make it available outside the context of pack
varint.h varint: make it available outside the context of pack
version.c include agent identifier in capability string
version.h include agent identifier in capability string
versioncmp.c tag: support --sort=<spec>
walker.c walker_fetch: fix minor memory leak
walker.h http: init and cleanup separately from http-walker
wildmatch.c wildmatch: properly fold case everywhere
wildmatch.h wildmatch: support "no FNM_PATHNAME" mode wrap-for-bin: make bin-wrappers chainable
wrapper.c read-cache.c: verify index file before we opportunistically update it
write_or_die.c write_or_die: raise SIGPIPE when we get EPIPE
ws.c use strchrnul() in place of strchr() and strlen()
wt-status.c Merge branch 'rs/status-code-clean-up'
wt-status.h Merge branch 'mm/status-porcelain-format-i18n-fix'
xdiff-interface.c xdiff: remove emit_func() and xdi_diff_hunks()
xdiff-interface.h xdiff: remove emit_func() and xdi_diff_hunks()
zlib.c zlib: fix compilation failures with Sun C Compilaer

	Git - the stupid content tracker


"git" can mean anything, depending on your mood.

 - random three-letter combination that is pronounceable, and not
   actually used by any common UNIX command.  The fact that it is a
   mispronunciation of "get" may or may not be relevant.
 - stupid. contemptible and despicable. simple. Take your pick from the
   dictionary of slang.
 - "global information tracker": you're in a good mood, and it actually
   works for you. Angels sing, and a light suddenly fills the room.
 - "goddamn idiotic truckload of sh*t": when it breaks

Git is a fast, scalable, distributed revision control system with an
unusually rich command set that provides both high-level operations
and full access to internals.

Git is an Open Source project covered by the GNU General Public
License version 2 (some parts of it are under different licenses,
compatible with the GPLv2). It was originally written by Linus
Torvalds with help of a group of hackers around the net.

Please read the file INSTALL for installation instructions.

See Documentation/gittutorial.txt to get started, then see
Documentation/everyday.txt for a useful minimum set of commands, and
Documentation/git-commandname.txt for documentation of each command.
If git has been correctly installed, then the tutorial can also be
read with "man gittutorial" or "git help tutorial", and the
documentation of each command with "man git-commandname" or "git help

CVS users may also want to read Documentation/gitcvs-migration.txt
("man gitcvs-migration" or "git help cvs-migration" if git is

Many Git online resources are accessible from
including full documentation and Git related tools.

The user discussion and development of Git take place on the Git
mailing list -- everyone is welcome to post bug reports, feature
requests, comments and patches to (read
Documentation/SubmittingPatches for instructions on patch submission).
To subscribe to the list, send an email with just "subscribe git" in
the body to The mailing list archives are
available at, and other archival sites.

The maintainer frequently sends the "What's cooking" reports that
list the current status of various development topics to the mailing
list.  The discussion following them give a good reference for
project status, development direction and remaining tasks.
Something went wrong with that request. Please try again.