Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Peff's git repository
branch: private

This branch is 281 commits ahead of git:master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
Documentation Merge branch 'js/fsck-opt' into HEAD
block-sha1 Merge branch 'jk/pack-bitmap'
builtin Merge branch 'ukk/zdiff3' into HEAD
compat Merge branch 'dm/compat-s-ifmt-for-zos'
contrib Merge branch 'ukk/zdiff3' into HEAD
ewah wip -- better protection against corruption
git-gui Merge git://
gitk-git Merge git://
gitweb gitweb: hack around CGI's list-context param() handling
mergetools mergetools: stop setting $status in merge_cmd()
perl two minor typo fixes
po l10n: ca.po: Fix trailing whitespace
ppc fix openssl headers conflicting with custom SHA1 implementations
t Merge branch 'js/fsck-opt' into HEAD
templates Merge branch 'nd/multiple-work-trees' into next
vcs-svn strbuf: introduce starts_with() and ends_with()
.clang-format .clang-format: introduce the use of clang-format
.gitattributes .gitattributes: detect 8-space indent in shell scripts
.gitignore Merge branch 'jk/preapprove-helper-credentials' into HEAD
.mailmap .mailmap: add Stefan Bellers corporate mail address
COPYING Update COPYING with GPLv2 with new FSF address
INSTALL git-imap-send: use libcurl for implementation
LGPL-2.1 provide a copy of the LGPLv2.1
Makefile Merge branch 'jk/preapprove-helper-credentials' into HEAD
README doc: add 'everyday' to 'git help'
RelNotes Post 2.3 cyle (batch #5)
abspath.c abspath: convert absolute_path() to strbuf
aclocal.m4 configure: use AC_LANG_PROGRAM consistently
advice.c standardize usage info string format
advice.h Merge branch 'jc/push-2.0-default-to-simple'
alias.c alias.c: replace `git_config()` with `git_config_get_string()`
alloc.c alloc: factor out commit index
archive-tar.c Revert "archive: honor tar.umask even for pax headers"
archive-zip.c Merge branch 'sb/archive-zip-double-assignment-fix' into maint
archive.c archive: ignore blob objects when checking reachability
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: avoid heavy work when we know the specified attr is not defined
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 'jc/merge-bases'
bisect.h Move print_commit_list to libgit.a
bitset.h add functions for memory-efficient bitmaps
blame-tree.c blame-tree: teach drop_pathspec about pathspec tries
blame-tree.h add blame-tree command
blob.c add object_as_type helper for casting objects
blob.h Replace parse_blob() with an explanatory comment
branch.c Merge branch 'jk/logallrefupdates' into HEAD
branch.h checkout: suppress tracking message with "-q"
builtin.h Merge branch 'jk/pager-subcommand' into HEAD
bulk-checkin.c cleanups: ensure that git-compat-util.h is included first
bulk-checkin.h cleanups: ensure that git-compat-util.h is included first
bundle.c bundle: split out ref writing from bundle_create
bundle.h Merge branch 'jc/unseekable-bundle'
cache-tree.c Merge branch 'jk/cache-tree-protect-from-broken-libgit2'
cache-tree.h Merge branch 'dt/cache-tree-repair'
cache.h Merge branch 'jk/rename-progress' into HEAD check-builtins: strip executable suffix $X when enumerating builtins
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.h parse_color: recognize "no$foo" to clear the $foo attribute
column.c use child_process_init() to initialize struct child_process variables
column.h column: support piping stdout to external git-column process
combine-diff.c tree-diff: use pathspec tries
command-list.txt Documentation: add documentation for 'git interpret-trailers'
commit-slab.h use REALLOC_ARRAY for changing the allocation size of arrays
commit.c commit: provide a fast multi-tip contains function
commit.h commit: provide a fast multi-tip contains function
config.c Merge branch 'jk/logallrefupdates' into HEAD Merge branch 'jc/remove-export-from-config-mak-in'
config.mak.uname check for clock_gettime and CLOCK_MONOTONIC check for HMAC_CTX_cleanup
connect.c Merge branch 'tb/connect-ipv6-parse-fix' into next
connect.h connect.c: refactor url parsing
connected.c check_everything_connected: assume alternate ref tips are valid
connected.h connected.c: add new variant that runs with --shallow-file
convert.c Merge branch 'sp/stream-clean-filter'
convert.h convert: stream from fd to required clean filter to reduce used addre…
copy.c copy_fd(): do not close the input file descriptor
credential-cache--daemon.c credential-cache: close stderr in daemon process
credential-cache.c run-command: introduce CHILD_PROCESS_INIT
credential-store.c standardize usage info string format
credential-wrap.c add credential-wrap
credential.c Merge branch 'jk/preapprove-helper-credentials' into HEAD
credential.h Merge branch 'jk/preapprove-helper-credentials' into HEAD
csum-file.c Merge branch 'jk/sha1write-void'
csum-file.h Merge branch 'jk/pack-bitmap'
ctype.c ctype: support iscntrl, ispunct, isxdigit and isprint
daemon.c Merge branch 'jk/daemon-interpolate' into next
date.c Merge branch 'jk/approxidate-avoid-y-d-m-over-future-dates' into maint
decorate.c hashmap: factor out getting a hash code from a SHA1
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 teach tree-diff a max-depth parameter
diff-no-index.c diff: turn on rename detection progress reporting
diff.c Merge branch 'jk/diff-attr-hook' into HEAD
diff.h tree-diff: use pathspec tries
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 diffcore-rename: avoid processing duplicate destinations
diffcore.h diff --stat: mark any file larger than core.bigfilethreshold binary
dir.c within_depth: fix return for empty path
dir.h prep_exclude: remove the artificial PATH_MAX limit
editor.c run-command: introduce CHILD_PROCESS_INIT
entry.c read-cache: mark updated entries for split index
exec_cmd.c Merge branch 'jc/exec-cmd-system-path-leak-fix'
exec_cmd.h system_path(): always return free'able memory to the caller
fast-import.c Merge branch 'mh/refs-have-new' into next
fetch-pack.c lockfile.h: extract new header file for the functions in lockfile.c
fetch-pack.h Merge branch 'nd/shallow-clone'
fmt-merge-msg.h fmt-merge-msg: use branch.$name.description
fsck.c fsck_msg_severity: range-check enum with assert()
fsck.h fsck: git receive-pack: support excluding objects from fsck'ing i18n: help: mark strings for translation
gettext.c gettext.c: move get_preferred_languages() from http.c
gettext.h gettext.c: move get_preferred_languages() from http.c
git-add--interactive.perl hacky interactive clang format Merge branch 'nd/multiple-work-trees' into next
git-archimport.perl git-archimport: use a lowercase "usage:" string standardize usage info string format hacky interactive clang format
git-compat-util.h Merge branch 'rj/no-xopen-source-for-cygwin' into next
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--helper: add explicit exit statement
git-difftool.perl Merge branch 'da/difftool' filter-branch: eliminate duplicate mapped parents 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 mergetool--lib: remove use of $status global mergetool: simplify conditionals Merge branch 'ld/p4-submit-hint' remove #!interpreter line from shell libraries *.sh: respect $GIT_INDEX_FILE add variable to use the stuck-long mode rebase: omit patch-identical commits with --fork-point Merge branch 'nd/multiple-work-trees' into next *.sh: avoid hardcoding $GIT_DIR/hooks/... *.sh: avoid hardcoding $GIT_DIR/hooks/...
git-relink.perl git-relink: use a lowercase "usage:" string transport-helper: do not request symbolic refs to remote helpers Merge branch 'lt/request-pull'
git-send-email.perl Merge branch 'jc/send-email-sensible-encoding' into next remove #!interpreter line from shell libraries Merge branch 'nd/multiple-work-trees' into next git-stash: avoid hardcoding $GIT_DIR/logs/.... Merge branch 'ps/submodule-sanitize-path-upon-add'
git-svn.perl git-svn: make it play nicely with submodules use the $( ... ) construct for command substitution
git.c Merge branch 'jk/sigpipe-report' into HEAD
git.rc Makefile: Fix compilation of Windows resource file spec: add missing build dependency
gpg-interface.c Merge branch 'jc/push-cert'
gpg-interface.h gpg-interface: move parse_signature() to where it should be
graph.c Merge branch 'rs/graph-simplify'
graph.h Revert "graph.c: mark private file-scope symbols as static"
grep.c Merge branch 'jk/blame-commit-label' into maint
grep.h grep: add color.grep.matchcontext and color.grep.matchselected
hashmap.c hashmap: add string interning API
hashmap.h hashmap: add string interning API
help.c Merge branch 'sb/help-unknown-command-sort-fix'
help.h help: add help_unknown_ref()
hex.c Merge branch 'sb/hex-object-name-is-at-most-41-bytes-long'
http-backend.c Merge branch 'rs/run-command-env-array'
http-fetch.c Merge branch 'ab/enable-i18n'
http-push.c http-push: trim trailing newline from remote symref
http-walker.c http-walker: simplify process_alternates_response() using strbuf
http.c gettext.c: move get_preferred_languages() from http.c
http.h http.c: make finish_active_slot() and handle_curl_result() static
ident.c Merge branch 'jk/commit-author-parsing'
imap-send.c imap-send.c: set CURLOPT_USE_SSL to CURLUSESSL_TRY
khash.h use REALLOC_ARRAY for changing the allocation size of arrays
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.c: make line_log_data_init() static
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 list-objects: optimize "revs->blob_objects = 0" case
list-objects.h list-objects: reduce one argument in mark_edges_uninteresting
ll-merge.c ll-merge.c: refactor `read_merge_config()` to use `git_config_string()`
ll-merge.h merge-recursive --patience
lockfile.c teach lockfile to wait for some locks
lockfile.h teach lockfile to wait for some locks
log-tree.c Merge branch 'jn/parse-config-slot'
log-tree.h Merge branch 'jn/parse-config-slot'
mailmap.c mailmap: use higher level string list functions
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 'jc/merge-bases'
merge-recursive.h Move try_merge_command and checkout_fast_forward to libgit.a
merge.c lockfile.h: extract new header file for the functions in lockfile.c
mergesort.c mergesort: rename it to llist_mergesort()
mergesort.h mergesort: rename it to llist_mergesort()
name-hash.c hashmap: add simplified hashmap_get_from_hash() API
notes-cache.c Merge branch 'jk/commit-buffer-length'
notes-cache.h introduce notes-cache interface
notes-merge.c Merge branch 'nd/multiple-work-trees' into next
notes-merge.h Move create_notes_commit() from notes-merge.c into notes-utils.c
notes-utils.c use strbuf_complete_line() for adding a newline if needed
notes-utils.h commit_tree: take a pointer/len pair rather than a const strbuf
notes.c Merge branch 'jk/blame-commit-label' into maint
notes.h many small typofixes
object.c drop add_object_array_with_mode
object.h drop add_object_array_with_mode
pack-bitmap-write.c Merge branch 'jk/pack-bitmap'
pack-bitmap.c Merge branch 'jk/bitmaps' into HEAD
pack-bitmap.h preferred base reuse wip
pack-check.c fsck: print progress
pack-objects.c use REALLOC_ARRAY for changing the allocation size of arrays
pack-objects.h pack-objects: implement bitmap writing
pack-revindex.h do not discard revindex when re-preparing packfiles
pack-write.c pack-write: simplify index_pack_lockfile using skip_prefix() and xstr…
pack.h finish_tmp_packfile():use strbuf for pathname construction
pager.c pager: save the original stderr when redirecting to pager
parse-options-cb.c prune: introduce OPT_EXPIRY_DATE() and use it
parse-options.c Merge branch 'jc/parseopt-verify-short-name'
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 Merge branch 'nd/multiple-work-trees' into next
pathspec.c pathspec: turn on tries when appropriate
pathspec.h pathspec: turn on tries when appropriate
pkt-line.c pkt-line: allow writing of LARGE_PACKET_MAX buffers
pkt-line.h comments: fix misuses of "nor"
preload-index.c cache.h: rename cache_def_free to cache_def_clear
pretty.c Merge branch 'rs/simple-cleanups' into next
prio-queue.c prio-queue: make output stable with respect to insertion
prio-queue.h prio-queue: make output stable with respect to insertion
progress.c progress: use pager's original_stderr if available
progress.h nicer display of thin pack completion
prompt.c prompt.c: remove git_getpass() nobody uses
prompt.h prompt.c: remove git_getpass() nobody uses
quote.c ls-tree: remove path filtering logic in show_tree
quote.h ls-tree: remove path filtering logic in show_tree
reachable.c reachable: use revision machinery's --indexed-objects code
reachable.h pack-objects: match prune logic for discarding objects
read-cache.c Merge branch 'sb/plug-leak-in-make-cache-entry'
reflog-walk.c refs.c: change resolve_ref_unsafe reading argument to be a flags field
reflog-walk.h stylefix: asterisks stick to the variable, not the type
refs.c Merge branch 'jk/packed-refs-safety' into HEAD
refs.h Merge branch 'mh/refs-have-new' into next
remote-curl.c Merge branch 'ye/http-accept-language'
remote-testsvn.c run-command: introduce CHILD_PROCESS_INIT
remote.c branch_get: provide per-branch pushremote pointers
remote.h branch_get: provide per-branch pushremote pointers
replace_object.c Merge branch 'dd/use-alloc-grow'
rerere.c Merge branch 'jn/rerere-fail-on-auto-update-failure' into maint
rerere.h rerere.h: mark string for translation
resolve-undo.c resolve-undo: be specific what part of the index has changed
resolve-undo.h convert unmerge_cache to take struct pathspec
revision.c check_everything_connected: assume alternate ref tips are valid
revision.h Merge branch 'jc/unused-symbols'
run-command.c Merge branch 'jk/sigpipe-report' into HEAD
run-command.h Merge branch 'nd/multiple-work-trees' into next
send-pack.c send-pack: kill pack-objects helper on signal or exit
send-pack.h send-pack.c: add --atomic command line argument
sequencer.c ref_transaction_update(): remove "have_old" parameter
sequencer.h Merge branch 'jc/conflict-hint' into cc/interpret-trailers-more
server-info.c update-server-info: create info/* with mode 0666
setup.c prune: strategies for linked checkouts
sh-i18n--envsubst.c use REALLOC_ARRAY for changing the allocation size of arrays
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 duplicates in sha1_pos()
sha1-lookup.h sha1-lookup: add new "sha1_pos" function to efficiently lookup sha1
sha1_name.c Merge branch 'jk/publish' into HEAD
shallow.c Merge branch 'jc/unused-symbols'
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 cleanups: ensure that git-compat-util.h is included first
sigchain.h refactor signal handling for cleanup functions
siphash.h add siphash.h
split-index.c update-index: new options to enable/disable split index mode
split-index.h split-index: the reading part
strbuf.c Merge branch 'jc/strbuf-add-lines-avoid-sp-ht-sequence'
strbuf.h strbuf.h: group documentation for trim functions
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 'sb/string-list'
string-list.h Merge branch 'sb/string-list'
submodule.c Merge branch 'nd/multiple-work-trees' into next
submodule.h rm: delete .gitmodules entry of submodules removed from the work tree
tag.c gpg-interface: move parse_signature() to where it should be
tag.h gpg-interface: move parse_signature() to where it should be
tar.h tar-tree: Introduce write_entry()
test-chmtime.c comments: fix misuses of "nor"
test-config.c add tests for `git_config_get_string_const()`
test-ctype.c test-ctype: add test for is_pathspec_magic
test-date.c date: use strbufs in date-formatting functions
test-delta.c tests: use a lowercase "usage:" string
test-dump-cache-tree.c Merge branch 'dt/cache-tree-repair'
test-dump-split-index.c t1700: new tests for split-index mode
test-genrandom.c tests: use a lowercase "usage:" string
test-hashmap.c Merge branch 'js/test-hashmap-squelch-gcc'
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-pathspec.c pathspec: turn on tries when appropriate
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 cleanups: ensure that git-compat-util.h is included first
test-revision-walking.c Teach revision walking machinery to walk multiple times sequencially
test-run-command.c run-command: introduce CHILD_PROCESS_INIT
test-scrap-cache-tree.c lockfile.h: extract new header file for the functions in lockfile.c
test-sha1-array.c sha1-array: add test-sha1-array and basic tests
test-sha1.c test-sha1: add a binary output mode more tr portability test script fixes
test-sigchain.c cleanups: ensure that git-compat-util.h is included first
test-string-list.c replace {pre,suf}fixcmp() with {starts,ends}_with()
test-subprocess.c run-command: introduce CHILD_PROCESS_INIT
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
trace.c Merge branch 'nd/multiple-work-trees' into next
trace.h git: add performance tracing for git's main() function to debug scripts
trailer.c do not include the same header twice
trailer.h trailer: put all the processing together and print
transport-helper.c Merge branch 'jk/valgrind-fixups' into HEAD
transport.c Merge branch 'nd/multiple-work-trees' into next
transport.h push.c: add an --atomic argument
tree-diff.c Merge branch 'jk/follow-multiple' into HEAD
tree-walk.c tree-walk: be more specific about corrupt tree errors
tree-walk.h tree-walk: finally switch over tree descriptors to contain a pre-pars…
tree.c tree.c: update read_tree_recursive callback to pass strbuf as base
tree.h tree.c: update read_tree_recursive callback to pass strbuf as base
unicode_width.h Update of unicode_width.h to Unicode Version 7.0 Makefile: allow building without perl
unix-socket.c Merge branch 'rs/strbuf-getcwd'
unix-socket.h credentials: add "cache" helper
unpack-trees.c Sync with v2.2.1
unpack-trees.h diff-lib, read-tree, unpack-trees: mark cache_entry array paramters c… delete the command group
upload-pack.c dumpstat-ify upload-pack
url.c use strbuf_addch for adding single characters
url.h url: decode buffers that are not NUL-terminated
urlmatch.c urlmatch.c: make match_urls() static
urlmatch.h urlmatch.c: make match_urls() static
usage.c Merge branch 'jk/a-thread-only-dies-once' into maint
userdiff.c do not include the same header twice
userdiff.h refactor get_textconv to not require diff_filespec
utf8.c Merge branch 'maint-2.1' into maint
utf8.h utf8: add is_hfs_dotgit() helper
varint.c cleanups: ensure that git-compat-util.h is included first
varint.h cleanups: ensure that git-compat-util.h is included first
version.c include agent identifier in capability string
version.h include agent identifier in capability string
versioncmp.c tag: support --sort=<spec>
walker.c ref_transaction_update(): remove "have_old" parameter
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 Merge branch 'jc/max-io-size-and-ssize-max' into next
ws.c use strchrnul() in place of strchr() and strlen()
wt-status.c Merge branch 'jk/status-read-branch-name-fix' into maint
wt-status.h Merge branch 'mm/status-porcelain-format-i18n-fix'
xdiff-interface.c xdiff: implement a zealous diff3
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/giteveryday.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.