Git with broken hash generation to generate collisions between object IDs. Don't use this! https://undefinedbehavior.de/posts/commit-vandalism/
Go to file
Denton Liu 2c9e125b27 t: teach test_cmp_rev to accept ! for not-equals
In the case where we are using test_cmp_rev() to report not-equals, we
write `! test_cmp_rev`. However, since test_cmp_rev() contains

	r1=$(git rev-parse --verify "$1") &&
	r2=$(git rev-parse --verify "$2") &&

`! test_cmp_rev` will succeed if any of the rev-parses fail. This
behavior is not desired. We want the rev-parses to _always_ be
successful.

Rewrite test_cmp_rev() to optionally accept "!" as the first argument to
do a not-equals comparison. Rewrite `! test_cmp_rev` to `test_cmp_rev !`
in all tests to take advantage of this new functionality.

Also, rewrite the rev-parse logic to end with a `|| return 1` instead of
&&-chaining into the rev-comparison logic. This makes it obvious to
future readers that we explicitly intend on returning early if either of
the rev-parses fail.

Signed-off-by: Denton Liu <liu.denton@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-11-21 09:41:51 +09:00
.github point pull requesters to GitGitGadget 2019-03-13 11:07:50 +09:00
block-sha1
builtin fetch: delay fetch_if_missing=0 until after config 2019-10-24 11:34:44 +09:00
ci Merge branch 'sg/ci-osx-gcc8-fix' 2019-10-24 13:34:03 +09:00
compat Merge branch 'js/mingw-needs-hiding-fix' 2019-10-30 15:13:13 +09:00
contrib Merge branch 'nr/diff-highlight-indent-fix' 2019-10-23 14:43:09 +09:00
Documentation Merge branch 'bc/doc-use-docbook-5' 2019-11-04 13:33:06 +09:00
ewah ewok_rlw.h: add missing 'inline' to function definition 2018-10-29 10:14:19 +09:00
git-gui Merge https://github.com/prati0100/git-gui 2019-11-04 13:29:38 +09:00
gitk-git Merge gitk to pick up emergency build fix 2019-09-17 14:59:18 -07:00
gitweb gitweb: correctly store previous rev in javascript-actions mode 2019-10-28 11:06:57 +09:00
mergetools mergetools: add support for smerge (Sublime Merge) 2019-04-04 18:21:25 +09:00
negotiator Merge branch 'jt/fetch-negotiator-skipping' 2018-08-02 15:30:46 -07:00
perl git-svn: trim leading and trailing whitespaces in author name 2019-09-28 13:51:42 +09:00
po l10n: zh_CN: for git v2.24.0 l10n round 1~2 2019-11-02 20:51:12 +08:00
ppc *.[ch]: manually align parameter lists 2019-05-05 15:20:10 +09:00
refs Merge branch 'sc/pack-refs-deletion-racefix' 2019-08-22 12:34:10 -07:00
sha1collisiondetection@855827c583 sha1dc: update from upstream 2019-05-14 16:45:01 +09:00
sha1dc sha1dc: update from upstream 2019-05-14 16:45:01 +09:00
sha256 sha256: add an SHA-256 implementation using libgcrypt 2018-11-14 16:54:53 +09:00
t t: teach test_cmp_rev to accept ! for not-equals 2019-11-21 09:41:51 +09:00
templates git-merge: honor pre-merge-commit hook 2019-08-07 12:37:33 -07:00
trace2 trace2: write discard message to sentinel files 2019-10-05 17:53:51 +09:00
vcs-svn *.[ch]: manually align parameter lists 2019-05-05 15:20:10 +09:00
xdiff xdiffi: fix typos and touch up comments 2019-10-09 10:58:34 +09:00
.clang-format clang-format: use git grep to generate the ForEachMacros list 2019-06-04 14:50:40 -07:00
.editorconfig editorconfig: indicate settings should be kept in sync 2018-10-09 18:34:15 +09:00
.gitattributes Mark .bat files as requiring CR/LF endings 2019-06-20 14:03:05 -07:00
.gitignore Merge branch 'dl/honor-cflags-in-hdr-check' 2019-10-07 11:33:02 +09:00
.gitmodules sha1dc: optionally use sha1collisiondetection as a submodule 2017-07-03 10:09:34 -07:00
.mailmap .mailmap: update email address of Andrey Mazo 2019-09-20 22:21:28 -07:00
.travis.yml travis-ci: build with GCC 4.8 as well 2019-07-19 14:06:01 -07:00
.tsan-suppressions ThreadSanitizer: add suppressions 2017-08-23 10:38:56 -07:00
abspath.c real_path: clarify return value ownership 2017-09-27 09:13:47 +09:00
aclocal.m4 configure: use AC_LANG_PROGRAM consistently 2011-02-14 10:55:15 -08:00
advice.c Merge branch 'ra/cherry-pick-revert-skip' 2019-07-19 11:30:21 -07:00
advice.h Merge branch 'ra/cherry-pick-revert-skip' 2019-07-19 11:30:21 -07:00
alias.c alias.c: mark split_cmdline_strerror() strings for translation 2018-11-12 14:47:09 +09:00
alias.h headers: normalize the spelling of some header guards 2018-10-18 13:39:35 +09:00
alloc.c object_as_type: initialize commit-graph-related fields of 'struct commit' 2019-01-27 16:55:57 -08:00
alloc.h object_as_type: initialize commit-graph-related fields of 'struct commit' 2019-01-27 16:55:57 -08:00
apply.c Merge branch 'tg/range-diff-output-update' 2019-10-15 13:48:02 +09:00
apply.h apply.h: include missing header 2019-09-28 14:04:16 +09:00
archive-tar.c Merge branch 'rs/pax-extended-header-length-fix' 2019-09-09 12:26:37 -07:00
archive-zip.c archive: convert struct archiver_args to object_id 2019-04-01 11:57:39 +09:00
archive.c tree-walk.c: remove the_repo from get_tree_entry() 2019-06-27 12:45:17 -07:00
archive.h Merge branch 'dl/no-extern-in-func-decl' 2019-05-13 23:50:32 +09:00
argv-array.c Merge branch 'ma/unpack-trees-free-msgs' 2018-05-30 21:51:29 +09:00
argv-array.h Merge branch 'ma/unpack-trees-free-msgs' 2018-05-30 21:51:29 +09:00
attr.c Merge branch 'ew/hashmap' 2019-10-15 13:48:02 +09:00
attr.h Make git_check_attr() a void function 2018-09-12 15:15:34 -07:00
azure-pipelines.yml Merge branch 'js/azure-pipelines-msvc' 2019-10-23 11:06:46 +09:00
banned.h banned.h: fix vsprintf()'s ban message 2019-08-26 10:32:45 -07:00
base85.c
bisect.c bisect: switch to using the_hash_algo 2019-08-19 15:04:58 -07:00
bisect.h *.[ch]: manually align parameter lists 2019-05-05 15:20:10 +09:00
blame.c Merge branch 'ew/hashmap' 2019-10-15 13:48:02 +09:00
blame.h Merge branch 'br/blame-ignore' 2019-07-19 11:30:20 -07:00
blob.c object: convert create_object() to use object_id 2019-06-20 10:20:51 -07:00
blob.h blob: allow lookup_blob to handle arbitrary repositories 2018-06-29 10:43:39 -07:00
branch.c Merge branch 'nd/switch-and-restore' 2019-07-09 15:25:44 -07:00
branch.h Merge branch 'nd/switch-and-restore' 2019-07-09 15:25:44 -07:00
builtin.h Merge branch 'ab/test-env' 2019-07-25 13:59:20 -07:00
bulk-checkin.c bulk-checkin: zero-initialize hashfile_checkpoint 2019-09-06 11:03:39 -07:00
bulk-checkin.h *.[ch]: manually align parameter lists 2019-05-05 15:20:10 +09:00
bundle.c bundle: switch to use the_hash_algo 2019-08-19 15:04:58 -07:00
bundle.h create_bundle(): drop unused "header" parameter 2019-01-24 12:35:44 -08:00
cache-tree.c Merge branch 'en/merge-recursive-cleanup' 2019-10-15 13:47:59 +09:00
cache-tree.h cache-tree: share code between functions writing an index as a tree 2019-08-19 10:08:03 -07:00
cache.h Merge branch 'js/azure-pipelines-msvc' 2019-10-15 13:48:00 +09:00
chdir-notify.c add chdir-notify API 2018-03-30 12:49:57 -07:00
chdir-notify.h add chdir-notify API 2018-03-30 12:49:57 -07:00
check_bindir check_bindir: avoid "test <cond> -a/-o <cond>" 2014-06-09 14:47:06 -07:00
check-builtins.sh
checkout.c checkout & worktree: introduce checkout.defaultRemote 2018-06-11 09:41:02 -07:00
checkout.h *.[ch]: manually align parameter lists 2019-05-05 15:20:10 +09:00
CODE_OF_CONDUCT.md CODE_OF_CONDUCT: mention individual project-leader emails 2019-10-10 10:41:46 +09:00
color.c color: protect against out-of-bounds reads and writes 2018-08-03 08:52:05 -07:00
color.h range-diff: use dim/bold cues to improve dual color mode 2018-08-13 10:44:52 -07:00
column.c column: use utf8_strnwidth() to strip out ANSI color escapes 2019-10-15 10:54:15 +09:00
column.h *.[ch]: manually align parameter lists 2019-05-05 15:20:10 +09:00
combine-diff.c combine-diff: replace GIT_SHA1_HEXSZ with the_hash_algo 2019-08-19 15:04:58 -07:00
command-list.txt help: move git-diff and git-reset to different groups 2019-05-07 13:04:48 +09:00
commit-graph.c Merge branch 'ds/commit-graph-on-fetch' 2019-11-04 13:33:06 +09:00
commit-graph.h upload-pack: disable commit graph more gently for shallow traversal 2019-09-12 12:30:08 -07:00
commit-reach.c commit-graph: fix writing first commit-graph during fetch 2019-10-25 11:19:16 +09:00
commit-reach.h Merge branch 'sb/more-repo-in-api' 2019-02-05 14:26:09 -08:00
commit-slab-decl.h commit-slab: support shared commit-slab 2018-05-21 14:07:19 +09:00
commit-slab-impl.h commit-slabs: move MAYBE_UNUSED out 2018-10-24 14:52:50 +09:00
commit-slab.h commit-slab: support shared commit-slab 2018-05-21 14:07:19 +09:00
commit.c Merge branch 'tb/commit-graph-harden' 2019-10-07 11:32:58 +09:00
commit.h Merge branch 'dl/no-extern-in-func-decl' 2019-05-13 23:50:32 +09:00
common-main.c common-main: delay trace2 initialization 2019-08-06 13:09:01 -07:00
config.c Merge branch 'ew/hashmap' 2019-10-15 13:48:02 +09:00
config.h Merge branch 'dl/no-extern-in-func-decl' 2019-05-13 23:50:32 +09:00
config.mak.dev Makefile: allow for combining DEVELOPER=1 and CFLAGS="..." 2019-02-24 07:35:07 -08:00
config.mak.in
config.mak.uname vcxproj: include more generated files 2019-10-06 09:07:44 +09:00
configure.ac configure: Detect linking style for HP aCC on HP-UX 2019-06-07 10:06:11 -07:00
connect.c mingw: support UNC in git clone file://server/share/repo 2019-08-26 10:00:33 -07:00
connect.h *.[ch]: manually align parameter lists 2019-05-05 15:20:10 +09:00
connected.c Merge branch 'bc/object-id-part17' 2019-10-11 14:24:46 +09:00
connected.h clone: do faster object check for partial clones 2019-04-21 14:08:53 +09:00
convert.c Merge branch 'rs/convert-fix-utf-without-dash' 2019-10-09 14:01:00 +09:00
convert.h am: reload .gitattributes after patching it 2019-09-03 15:16:18 -07:00
copy.c
COPYING
credential-cache--daemon.c style: the opening '{' of a function is in a separate line 2018-12-10 15:41:09 +09:00
credential-cache.c
credential-store.c strbuf: give URL-encoding API a char predicate fn 2019-06-28 08:41:53 -07:00
credential.c
credential.h credential: let helpers tell us to quit 2014-12-04 10:11:12 -08:00
csum-file.c csum-file: refactor finalize_hashfile() method 2018-04-02 14:27:30 -07:00
csum-file.h *.[ch]: remove extern from function declarations using spatch 2019-05-05 15:20:06 +09:00
ctype.c kwset: use unsigned char to store values with high-bit set 2015-03-02 12:32:24 -08:00
daemon.c Merge branch 'lw/daemon-log-destination' 2018-04-25 13:28:58 +09:00
date.c Quit passing 'now' to date code 2019-09-12 11:03:51 -07:00
decorate.c hashmap: convert sha1hash() to oidhash() 2019-06-20 10:44:22 -07:00
decorate.h *.[ch]: remove extern from function declarations using spatch 2019-05-05 15:20:06 +09:00
delta-islands.c Merge branch 'jk/oidhash' 2019-07-09 15:25:43 -07:00
delta-islands.h delta-islands: respect progress flag 2019-06-20 13:29:49 -07:00
delta.h *.[ch]: manually align parameter lists 2019-05-05 15:20:10 +09:00
detect-compiler Makefile: detect compiler and enable more warnings in DEVELOPER=1 2018-04-16 13:54:53 +09:00
diff-delta.c diff-delta: set size out-parameter to 0 for NULL delta 2019-09-06 11:03:39 -07:00
diff-lib.c mark_fsmonitor_valid(): mark the index as changed if needed 2019-05-28 12:43:43 -07:00
diff-no-index.c Merge branch 'nd/diff-parseopt-4' 2019-04-25 16:41:12 +09:00
diff.c Merge branch 'ew/hashmap' 2019-10-15 13:48:02 +09:00
diff.h patch-id: convert to use the_hash_algo 2019-08-19 15:04:57 -07:00
diffcore-break.c diffcore-break: use a goto instead of a redundant if statement 2019-10-02 15:04:21 +09:00
diffcore-delta.c diff.c: reduce implicit dependency on the_index 2018-09-21 09:48:10 -07:00
diffcore-order.c
diffcore-pickaxe.c Merge branch 'nd/the-index' into md/list-objects-filter-by-depth 2019-01-15 15:38:29 -08:00
diffcore-rename.c Merge branch 'ew/hashmap' 2019-10-15 13:48:02 +09:00
diffcore.h diff.c: reduce implicit dependency on the_index 2018-09-21 09:48:10 -07:00
dir-iterator.c dir-iterator: add flags parameter to dir_iterator_begin 2019-07-11 13:52:15 -07:00
dir-iterator.h dir-iterator: add flags parameter to dir_iterator_begin 2019-07-11 13:52:15 -07:00
dir.c Merge branch 'en/clean-nested-with-ignored' 2019-10-11 14:24:46 +09:00
dir.h Merge branch 'en/clean-nested-with-ignored' 2019-10-11 14:24:46 +09:00
editor.c pager: add a helper function to clear the last line in the terminal 2019-06-24 13:38:46 -07:00
entry.c fill_stat_cache_info(): prepare for an fsmonitor fix 2019-05-28 12:43:42 -07:00
environment.c Move core_partial_clone_filter_default to promisor-remote.c 2019-06-25 14:05:38 -07:00
exec-cmd.c trace2: create new combined trace facility 2019-02-22 15:27:59 -08:00
exec-cmd.h *.[ch]: remove extern from function declarations using sed 2019-05-05 15:20:08 +09:00
fast-import.c Merge branch 'en/fast-imexport-nested-tags' 2019-10-15 13:48:00 +09:00
fetch-negotiator.c repo-settings: create feature.experimental setting 2019-08-13 13:33:55 -07:00
fetch-negotiator.h repo-settings: create feature.experimental setting 2019-08-13 13:33:55 -07:00
fetch-pack.c Merge branch 'js/trace2-fetch-push' 2019-10-15 13:48:03 +09:00
fetch-pack.h fetch_pack(): drop unused parameters 2019-03-20 18:34:09 +09:00
fmt-merge-msg.h *.[ch]: remove extern from function declarations using spatch 2019-05-05 15:20:06 +09:00
fsck.c Merge branch 'br/blame-ignore' 2019-07-19 11:30:20 -07:00
fsck.h fsck: use oidset instead of oid_array for skipList 2018-09-12 15:17:46 -07:00
fsmonitor.c fsmonitor: don't fill bitmap with entries to be removed 2019-10-12 10:16:11 +09:00
fsmonitor.h mark_fsmonitor_valid(): mark the index as changed if needed 2019-05-28 12:43:43 -07:00
fuzz-commit-graph.c fuzz-commit-graph: initialize repo object 2019-02-07 13:02:26 -08:00
fuzz-pack-headers.c fuzz: add basic fuzz testing target. 2018-10-15 14:28:59 +09:00
fuzz-pack-idx.c fuzz: add fuzz testing for packfile indices. 2018-10-15 14:29:03 +09:00
generate-cmdlist.sh help -a: do not list commands that are excluded from the build 2019-04-19 14:03:24 +09:00
gettext.c Merge branch 'ab/test-env' 2019-07-25 13:59:20 -07:00
gettext.h *.[ch]: remove extern from function declarations using spatch 2019-05-05 15:20:06 +09:00
git-add--interactive.perl add -i: show progress counter in the prompt 2019-10-04 07:12:19 +09:00
git-archimport.perl archimport: use safe_pipe_capture for user input 2017-09-12 11:08:15 +09:00
git-bisect.sh bisect--helper: bisect_start shell function partially in C 2019-01-02 10:23:03 -08:00
git-compat-util.h Merge branch 'bb/compat-util-comment-fix' 2019-10-18 11:40:48 +09:00
git-cvsexportcommit.perl cvsexportcommit: force crlf translation 2019-05-07 18:23:27 +09:00
git-cvsimport.perl
git-cvsserver.perl cvsserver: use safe_pipe_capture for constant commands as well 2017-09-11 14:52:29 +09:00
git-difftool--helper.sh mergetool: use get_merge_tool function 2019-05-13 23:11:59 +09:00
git-filter-branch.sh Recommend git-filter-repo instead of git-filter-branch 2019-09-05 13:01:48 -07:00
git-instaweb.sh git-instaweb: add Python builtin http.server support 2019-01-28 10:57:44 -08:00
git-legacy-stash.sh stash: avoid recursive hard reset on submodules 2019-10-15 10:34:44 +09:00
git-merge-octopus.sh
git-merge-one-file.sh merge-one-file: compute empty blob object ID 2018-05-02 13:59:53 +09:00
git-merge-resolve.sh scripts: use "git foo" not "git-foo" 2017-08-07 12:04:45 -07:00
git-mergetool--lib.sh Merge branch 'dl/difftool-mergetool' 2019-05-19 16:45:30 +09:00
git-mergetool.sh mergetool: use shell variable magic instead of awk 2019-06-12 13:20:56 -07:00
git-p4.py git-p4: auto-delete named temporary file 2019-10-06 20:43:37 +09:00
git-parse-remote.sh i18n: git-parse-remote.sh: mark strings for translation 2016-04-19 12:07:49 -07:00
git-quiltimport.sh git-quiltimport: add --keep-non-patch option 2019-01-07 15:29:34 -08:00
git-rebase--preserve-merges.sh rebase: fold git-rebase--common into the -p backend 2019-05-15 10:57:32 +09:00
git-request-pull.sh request-pull: warn if the remote object is not the same as the local one 2019-05-28 13:06:25 -07:00
git-send-email.perl Merge branch 'ab/send-email-transferencoding-fix' 2019-06-13 13:18:46 -07:00
git-sh-i18n.sh tests: make GIT_TEST_GETTEXT_POISON a boolean 2019-06-21 09:42:49 -07:00
git-sh-setup.sh stash: optionally use the scripted version again 2019-03-07 09:41:40 +09:00
git-submodule.sh Merge branch 'km/empty-repo-is-still-a-repo' 2019-05-09 00:37:23 +09:00
git-svn.perl git-svn: search --authors-prog in PATH too 2018-04-05 06:55:02 +00:00
GIT-VERSION-GEN Git 2.24 2019-11-04 13:33:06 +09:00
git-web--browse.sh git-web--browse.sh: use the $( ... ) construct for command substitution 2014-04-23 15:17:02 -07:00
git.c git: use COPY_ARRAY and MOVE_ARRAY in handle_alias() 2019-09-20 11:11:26 -07:00
git.rc mingw: embed a manifest to trick UAC into Doing The Right Thing 2019-06-27 12:55:45 -07:00
gpg-interface.c gpg-interface: do not scan past the end of buffer 2019-07-16 12:15:12 -07:00
gpg-interface.h gpg-interface.c: obtain primary key fingerprint as well 2018-10-23 08:00:43 +09:00
graph.c Merge branch 'np/log-graph-octopus-fix' into maint 2018-11-21 22:57:49 +09:00
graph.h graph: add support for --line-prefix on all graph-aware output 2016-08-31 18:07:09 -07:00
grep.c Merge branch 'cb/pcre2-chartables-leakfix' 2019-10-23 14:43:11 +09:00
grep.h Merge branch 'cb/pcre2-chartables-leakfix' 2019-10-23 14:43:11 +09:00
hash.h hash.h: move object_id definition from cache.h 2019-06-20 10:40:42 -07:00
hashmap.c hashmap: remove type arg from hashmap_{get,put,remove}_entry 2019-10-07 10:20:12 +09:00
hashmap.h hashmap_entry: remove first member requirement from docs 2019-10-07 10:20:12 +09:00
help.c Merge branch 'rs/help-unknown-ref-does-not-return' 2019-09-30 13:19:27 +09:00
help.h help: make help_unknown_ref() NORETURN 2019-08-30 10:22:42 -07:00
hex.c hex: introduce functions to print arbitrary hashes 2018-11-14 16:54:52 +09:00
http-backend.c http-backend: allow 64-character hex names 2019-04-01 11:57:38 +09:00
http-fetch.c Merge branch 'ma/http-walker-no-partial' 2018-05-08 15:59:35 +09:00
http-push.c http-push: simplify deleting a list item 2019-10-15 10:53:50 +09:00
http-walker.c Merge branch 'bc/hash-transition-16' 2019-04-25 16:41:17 +09:00
http.c Merge branch 'mh/http-urlmatch-cleanup' 2019-09-30 13:19:24 +09:00
http.h http: use xmalloc with cURL 2019-08-15 12:37:10 -07:00
ident.c Merge branch 'ps/stash-in-c' 2019-04-22 11:14:43 +09:00
imap-send.c Merge branch 'nd/imap-send-typofix' 2019-02-12 09:00:25 -08:00
INSTALL RelNotes: add details on Perl module changes 2018-03-16 16:07:37 -07:00
interdiff.c interdiff: teach show_interdiff() to indent interdiff 2018-07-23 12:50:06 -07:00
interdiff.h interdiff: teach show_interdiff() to indent interdiff 2018-07-23 12:50:06 -07:00
iterator.h
json-writer.c json_writer: new routines to create JSON data 2018-07-16 13:55:39 -07:00
json-writer.h json-writer.h: add missing include (hdr-check) 2018-09-20 11:50:00 -07:00
khash.h hashmap: convert sha1hash() to oidhash() 2019-06-20 10:44:22 -07:00
kwset.c Merge branch 'rs/copy-array' into maint 2019-07-29 12:38:15 -07:00
kwset.h *.[ch]: remove extern from function declarations using spatch 2019-05-05 15:20:06 +09:00
levenshtein.c convert trivial cases to ALLOC_ARRAY 2016-02-22 14:51:09 -08:00
levenshtein.h
LGPL-2.1
line-log.c Merge branch 'sg/line-log-tree-diff-optim' 2019-09-18 11:50:09 -07:00
line-log.h *.[ch]: remove extern from function declarations using spatch 2019-05-05 15:20:06 +09:00
line-range.c line-range.c: remove implicit dependency on the_index 2018-09-21 09:51:18 -07:00
line-range.h line-range.c: remove implicit dependency on the_index 2018-09-21 09:51:18 -07:00
linear-assignment.c linear-assignment: fix potential out of bounds memory access 2018-09-14 09:10:26 -07:00
linear-assignment.h linear-assignment: a function to solve least-cost assignment problems 2018-08-13 10:44:50 -07:00
list-objects-filter-options.c Merge branch 'jk/partial-clone-sparse-blob' 2019-10-07 11:32:54 +09:00
list-objects-filter-options.h Merge branch 'jk/partial-clone-sparse-blob' 2019-10-07 11:32:54 +09:00
list-objects-filter.c Merge branch 'jk/partial-clone-sparse-blob' 2019-10-07 11:32:54 +09:00
list-objects-filter.h list-objects-filter: implement composite filters 2019-06-28 08:41:53 -07:00
list-objects.c Merge branch 'jk/list-objects-optim-wo-trees' 2019-10-07 11:32:56 +09:00
list-objects.h list-objects: consume sparse tree walk 2019-01-17 13:44:39 -08:00
list.h
ll-merge.c am: reload .gitattributes after patching it 2019-09-03 15:16:18 -07:00
ll-merge.h am: reload .gitattributes after patching it 2019-09-03 15:16:18 -07:00
lockfile.c Replace all die("BUG: ...") calls by BUG() ones 2018-05-06 19:06:13 +09:00
lockfile.h *.[ch]: manually align parameter lists 2019-05-05 15:20:10 +09:00
log-tree.c Merge branch 'rs/simplify-by-deco-with-deco-refs-exclude' 2019-10-07 11:32:54 +09:00
log-tree.h format-patch: make cover letters always text/plain 2018-05-02 12:55:00 +09:00
ls-refs.c upload-pack: strip namespace from symref data 2019-05-28 10:02:00 -07:00
ls-refs.h *.[ch]: manually align parameter lists 2019-05-05 15:20:10 +09:00
mailinfo.c mailinfo: support format=flowed 2018-08-29 13:05:35 -07:00
mailinfo.h *.[ch]: remove extern from function declarations using spatch 2019-05-05 15:20:06 +09:00
mailmap.c object-store: move object access functions to object-store.h 2018-05-16 11:42:03 +09:00
mailmap.h Add missing includes and forward declarations 2018-08-15 11:52:09 -07:00
Makefile Merge branch 'dl/allow-running-cocci-verbosely' 2019-10-18 11:40:48 +09:00
match-trees.c match-trees.c: remove the_repo from shift_tree*() 2019-06-27 12:45:17 -07:00
mem-pool.c block alloc: add validations around cache_entry lifecyle 2018-07-03 10:58:27 -07:00
mem-pool.h block alloc: add validations around cache_entry lifecyle 2018-07-03 10:58:27 -07:00
merge-blobs.c merge-blobs.c: remove implicit dependency on the_index 2018-09-21 09:48:10 -07:00
merge-blobs.h *.[ch]: manually align parameter lists 2019-05-05 15:20:10 +09:00
merge-recursive.c Merge branch 'ew/hashmap' 2019-10-15 13:48:02 +09:00
merge-recursive.h merge-recursive: rename MERGE_RECURSIVE_* to MERGE_VARIANT_* 2019-08-19 10:08:04 -07:00
merge.c read-cache.c: kill read_index() 2019-01-14 12:13:04 -08:00
mergesort.c
mergesort.h mergesort: rename it to llist_mergesort() 2012-04-17 11:07:01 -07:00
midx.c midx: switch to using the_hash_algo 2019-08-19 15:05:00 -07:00
midx.h multi-pack-index: prepare 'repack' subcommand 2019-06-11 10:34:40 -07:00
name-hash.c hashmap: remove type arg from hashmap_{get,put,remove}_entry 2019-10-07 10:20:12 +09:00
notes-cache.c notes-cache.c: remove the_repository references 2018-11-12 14:50:06 +09:00
notes-cache.h notes-cache.c: remove the_repository references 2018-11-12 14:50:06 +09:00
notes-merge.c notes-merge: switch to use the_hash_algo 2019-04-01 11:57:37 +09:00
notes-merge.h notes-merge.c: remove implicit dependency on the_index 2018-11-12 14:50:05 +09:00
notes-utils.c notes-utils.c: remove the_repository references 2019-01-14 12:13:04 -08:00
notes-utils.h notes-utils.c: remove the_repository references 2019-01-14 12:13:04 -08:00
notes.c Merge branch 'mh/notes-duplicate-entries' 2019-09-30 13:19:25 +09:00
notes.h notes: correct documentation of format_display_notes() 2019-05-07 19:08:10 +09:00
object-store.h Merge branch 'ds/object-info-for-prefetch-fix' into maint 2019-07-25 14:27:08 -07:00
object.c treewide: remove duplicate #include directives 2019-10-04 08:16:00 +09:00
object.h commit-graph: fix writing first commit-graph during fetch 2019-10-25 11:19:16 +09:00
oidmap.c hashmap: introduce hashmap_free_entries 2019-10-07 10:20:11 +09:00
oidmap.h hashmap: use *_entry APIs for iteration 2019-10-07 10:20:11 +09:00
oidset.c Merge branch 'br/blame-ignore' 2019-07-19 11:30:20 -07:00
oidset.h Merge branch 'br/blame-ignore' 2019-07-19 11:30:20 -07:00
pack-bitmap-write.c pack-objects: drop packlist index_pos optimization 2019-09-06 11:03:42 -07:00
pack-bitmap.c Merge branch 'jk/misc-uninitialized-fixes' 2019-09-30 13:19:30 +09:00
pack-bitmap.h pack-bitmap.h: remove magic number 2019-09-28 14:04:20 +09:00
pack-check.c pack-check.c: remove the_repository references 2018-11-12 14:50:06 +09:00
pack-objects.c pack-objects: drop packlist index_pos optimization 2019-09-06 11:03:42 -07:00
pack-objects.h pack-objects: drop packlist index_pos optimization 2019-09-06 11:03:42 -07:00
pack-revindex.c pack-revindex: open index if necessary 2019-04-16 16:58:21 +09:00
pack-revindex.h pack-revindex: open index if necessary 2019-04-16 16:58:21 +09:00
pack-write.c pack-write: use hash_to_hex when writing checksums 2019-08-19 15:04:58 -07:00
pack.h *.[ch]: manually align parameter lists 2019-05-05 15:20:10 +09:00
packfile.c Merge branch 'ew/hashmap' 2019-10-15 13:48:02 +09:00
packfile.h Merge branch 'ds/midx-expire-repack' 2019-09-09 12:26:38 -07:00
pager.c pager: add a helper function to clear the last line in the terminal 2019-06-24 13:38:46 -07:00
parse-options-cb.c Merge branch 'nd/switch-and-restore' 2019-07-09 15:25:44 -07:00
parse-options.c parse-options: allow --end-of-options as a synonym for "--" 2019-08-06 13:05:39 -07:00
parse-options.h Merge branch 'nd/diff-parseopt' 2019-09-09 12:26:38 -07:00
patch-delta.c patch-delta: handle truncated copy parameters 2018-08-30 10:30:23 -07:00
patch-ids.c hashmap: remove type arg from hashmap_{get,put,remove}_entry 2019-10-07 10:20:12 +09:00
patch-ids.h format-patch: make --base patch-id output stable 2019-05-08 19:27:43 +09:00
path.c path: add a function to check for path suffix 2019-08-26 10:36:13 -07:00
path.h path: add a function to check for path suffix 2019-08-26 10:36:13 -07:00
pathspec.c Merge branch 'nd/the-index-final' 2019-02-06 22:05:23 -08:00
pathspec.h dir.c: move, rename and export match_attrs() 2018-11-19 10:50:33 +09:00
pkt-line.c pkt-line: drop 'const'-ness of a param to set_packet_header() 2019-05-16 13:29:06 +09:00
pkt-line.h *.[ch]: manually align parameter lists 2019-05-05 15:20:10 +09:00
preload-index.c mark_fsmonitor_valid(): mark the index as changed if needed 2019-05-28 12:43:43 -07:00
pretty.c log-tree: call load_ref_decorations() in get_name_decoration() 2019-09-09 11:16:40 -07:00
pretty.h Merge branch 'sb/more-repo-in-api' 2019-02-05 14:26:09 -08:00
prio-queue.c prio-queue: add 'peek' operation 2018-11-02 12:14:21 +09:00
prio-queue.h *.[ch]: remove extern from function declarations using spatch 2019-05-05 15:20:06 +09:00
progress.c Test the progress display 2019-09-17 09:39:16 -07:00
progress.h Merge branch 'sg/overlong-progress-fix' 2019-04-25 16:41:19 +09:00
promisor-remote.c promisor-remote: skip move_to_tail when no-op 2019-10-02 14:56:54 +09:00
promisor-remote.h Merge branch 'dl/honor-cflags-in-hdr-check' 2019-10-07 11:33:02 +09:00
prompt.c
prompt.h prompt.c: remove git_getpass() nobody uses 2015-01-15 11:02:06 -08:00
protocol.c tests: define GIT_TEST_PROTOCOL_VERSION 2019-03-07 10:02:42 +09:00
protocol.h *.[ch]: remove extern from function declarations using spatch 2019-05-05 15:20:06 +09:00
quote.c Merge branch 'gs/sq-quote-buf-pretty' 2019-10-15 13:48:02 +09:00
quote.h quote: add sq_append_quote_argv_pretty() 2019-08-09 10:48:02 -07:00
range-diff.c Merge branch 'ew/hashmap' 2019-10-15 13:48:02 +09:00
range-diff.h format-patch: do not let its diff-options affect --range-diff 2018-11-30 13:47:55 +09:00
reachable.c object: convert lookup_object() to use object_id 2019-06-20 10:18:09 -07:00
reachable.h *.[ch]: manually align parameter lists 2019-05-05 15:20:10 +09:00
read-cache.c Merge branch 'js/azure-pipelines-msvc' 2019-10-15 13:48:00 +09:00
README.md git-gui: add a readme 2019-10-12 21:29:30 +05:30
rebase-interactive.c rebase-interactive: rewrite edit_todo_list() to handle the initial edit 2019-03-07 09:17:57 +09:00
rebase-interactive.h rebase-interactive: rewrite edit_todo_list() to handle the initial edit 2019-03-07 09:17:57 +09:00
ref-filter.c Merge branch 'ew/hashmap' 2019-10-15 13:48:02 +09:00
ref-filter.h parse_opt_ref_sorting: always use with NONEG flag 2019-03-21 12:03:35 +09:00
reflog-walk.c Merge branch 'nd/i18n' 2018-08-15 15:08:23 -07:00
reflog-walk.h *.[ch]: manually align parameter lists 2019-05-05 15:20:10 +09:00
refs.c hashmap_entry: remove first member requirement from docs 2019-10-07 10:20:12 +09:00
refs.h Merge branch 'nd/worktree-name-sanitization' 2019-06-13 13:19:40 -07:00
refspec.c refspec: make hash size independent 2019-04-01 11:57:39 +09:00
refspec.h refspec: add back a refspec_item_init() function 2018-06-11 10:11:31 -07:00
RelNotes First batch after Git 2.23 2019-08-22 12:41:04 -07:00
remote-curl.c Merge branch 'bc/smart-http-atomic-push' 2019-10-23 14:43:11 +09:00
remote-testsvn.c Merge branch 'sb/object-store-grafts' 2018-07-18 12:20:28 -07:00
remote.c hashmap: remove type arg from hashmap_{get,put,remove}_entry 2019-10-07 10:20:12 +09:00
remote.h hashmap_entry: remove first member requirement from docs 2019-10-07 10:20:12 +09:00
replace-object.c Merge branch 'ds/commit-graph-with-grafts' into maint 2018-11-21 22:57:47 +09:00
replace-object.h *.[ch]: manually align parameter lists 2019-05-05 15:20:10 +09:00
repo-settings.c Merge branch 'ds/feature-macros' 2019-10-24 13:34:03 +09:00
repository.c Merge branch 'ma/clear-repository-format' 2019-03-20 15:16:07 +09:00
repository.h Merge branch 'jk/disable-commit-graph-during-upload-pack' 2019-10-07 11:32:55 +09:00
rerere.c rerere: replace sha1_to_hex 2019-08-19 15:04:59 -07:00
rerere.h rerere.c: remove the_repository references 2018-11-12 14:50:06 +09:00
resolve-undo.c resolve-undo.c: use the right index instead of the_index 2018-08-13 14:14:44 -07:00
resolve-undo.h *.[ch]: remove extern from function declarations using spatch 2019-05-05 15:20:06 +09:00
revision.c Merge branch 'ew/hashmap' 2019-10-15 13:48:02 +09:00
revision.h Merge branch 'en/combined-all-paths' 2019-03-07 09:59:54 +09:00
run-command.c trace2: create new combined trace facility 2019-02-22 15:27:59 -08:00
run-command.h *.[ch]: remove extern from function declarations using sed 2019-05-05 15:20:08 +09:00
send-pack.c send-pack: never fetch when checking exclusions 2019-10-09 10:46:41 +09:00
send-pack.h Add missing includes and forward declarations 2018-08-15 11:52:09 -07:00
sequencer.c Merge branch 'ew/hashmap' 2019-10-15 13:48:02 +09:00
sequencer.h Merge branch 'js/rebase-r-strategy' 2019-09-18 11:50:07 -07:00
serve.c pack-protocol.txt: accept error packets in any context 2019-01-02 13:05:30 -08:00
serve.h *.[ch]: manually align parameter lists 2019-05-05 15:20:10 +09:00
server-info.c Merge branch 'ew/server-info-remove-crufts' 2019-06-17 10:15:15 -07:00
setup.c Merge branch 'js/gitdir-at-unc-root' 2019-09-30 13:19:26 +09:00
sh-i18n--envsubst.c cleanup: fix possible overflow errors in binary search, part 2 2019-06-13 11:28:53 -07:00
sha1-array.c sha1-array: provide oid_array_filter 2018-12-05 11:42:31 +09:00
sha1-array.h sha1-array: provide oid_array_filter 2018-12-05 11:42:31 +09:00
sha1-file.c Merge branch 'bc/object-id-part17' 2019-10-11 14:24:46 +09:00
sha1-lookup.c Merge branch 'js/azure-pipelines-msvc' 2019-10-15 13:48:00 +09:00
sha1-lookup.h *.[ch]: manually align parameter lists 2019-05-05 15:20:10 +09:00
sha1-name.c Merge branch 'rs/nth-switch-code-simplification' 2019-10-07 11:33:00 +09:00
sha1dc_git.c
sha1dc_git.h sha1dc_git.h: re-arrange an ifdef chain for a subsequent change 2017-12-08 15:01:01 -08:00
shallow.c Merge branch 'rs/dedup-includes' 2019-10-11 14:24:48 +09:00
shell.c Merge branch 'nd/command-list' 2018-06-01 15:06:37 +09:00
shortlog.h Add missing includes and forward declarations 2018-08-15 11:52:09 -07:00
sideband.c Merge branch 'jt/fetch-v2-sideband' 2019-02-05 14:26:11 -08:00
sideband.h {fetch,upload}-pack: sideband v2 fetch response 2019-01-17 11:25:07 -08:00
sigchain.c Replace all die("BUG: ...") calls by BUG() ones 2018-05-06 19:06:13 +09:00
sigchain.h sigchain: add command to pop all common signals 2015-12-16 12:06:08 -08:00
split-index.c Merge branch 'nd/split-index-null-base-fix' 2019-03-07 09:59:56 +09:00
split-index.h split-index: convert struct split_index to object_id 2018-05-02 13:59:50 +09:00
stable-qsort.c Move git_sort(), a stable sort, into into libgit.a 2019-10-02 14:44:51 +09:00
strbuf.c Merge branch 'md/list-objects-filter-combo' 2019-09-18 11:50:09 -07:00
strbuf.h Merge branch 'md/list-objects-filter-combo' 2019-09-18 11:50:09 -07:00
streaming.c Merge branch 'jk/loose-object-cache-oid' 2019-02-06 22:05:27 -08:00
streaming.h *.[ch]: remove extern from function declarations using spatch 2019-05-05 15:20:06 +09:00
string-list.c style: the opening '{' of a function is in a separate line 2018-12-10 15:41:09 +09:00
string-list.h *.[ch]: manually align parameter lists 2019-05-05 15:20:10 +09:00
sub-process.c hashmap: remove type arg from hashmap_{get,put,remove}_entry 2019-10-07 10:20:12 +09:00
sub-process.h hashmap_entry: remove first member requirement from docs 2019-10-07 10:20:12 +09:00
submodule-config.c hashmap: remove type arg from hashmap_{get,put,remove}_entry 2019-10-07 10:20:12 +09:00
submodule-config.h *.[ch]: manually align parameter lists 2019-05-05 15:20:10 +09:00
submodule.c submodule: drop unused prefix parameter from some functions 2019-05-13 14:22:54 +09:00
submodule.h submodule: drop unused prefix parameter from some functions 2019-05-13 14:22:54 +09:00
symlinks.c Indent code with TABs 2018-12-09 12:37:32 +09:00
tag.c tag: factor out get_tagged_oid() 2019-09-05 14:10:18 -07:00
tag.h tag: factor out get_tagged_oid() 2019-09-05 14:10:18 -07:00
tar.h tar-tree: Introduce write_entry() 2006-03-25 16:35:43 -08:00
tempfile.c reopen_tempfile(): truncate opened file 2018-09-05 09:46:16 -07:00
tempfile.h *.[ch]: manually align parameter lists 2019-05-05 15:20:10 +09:00
thread-utils.c thread-utils: macros to unconditionally compile pthreads API 2018-10-29 11:22:48 +09:00
thread-utils.h thread-utils: macros to unconditionally compile pthreads API 2018-10-29 11:22:48 +09:00
tmp-objdir.c Replace all die("BUG: ...") calls by BUG() ones 2018-05-06 19:06:13 +09:00
tmp-objdir.h tmp-objdir: introduce API for temporary object directories 2016-10-10 13:54:02 -07:00
trace2.c Merge branch 'jh/trace2' 2019-05-13 23:50:35 +09:00
trace2.h trace2: rename environment variables to GIT_TRACE2* 2019-05-28 10:20:34 -07:00
trace.c packfile: drop release_pack_memory() 2019-08-13 12:21:33 -07:00
trace.h *.[ch]: manually align parameter lists 2019-05-05 15:20:10 +09:00
trailer.c pretty: add support for separator option in %(trailers) 2019-01-29 10:03:32 -08:00
trailer.h pretty: add support for separator option in %(trailers) 2019-01-29 10:03:32 -08:00
transport-helper.c Merge branch 'bc/smart-http-atomic-push' 2019-10-23 14:43:11 +09:00
transport-internal.h transport: teach all vtables to allow fetch first 2019-08-22 14:20:39 -07:00
transport.c transport: push codepath can take arbitrary repository 2019-10-08 13:20:01 +09:00
transport.h remote-curl: pass on atomic capability to remote side 2019-10-17 16:08:22 +09:00
tree-diff.c tree-walk.c: remove the_repo from fill_tree_descriptor() 2019-06-27 12:45:17 -07:00
tree-walk.c Merge branch 'jk/tree-walk-overflow' 2019-08-22 12:34:10 -07:00
tree-walk.h Merge branch 'jk/tree-walk-overflow' 2019-08-22 12:34:10 -07:00
tree.c tree: simplify parse_tree_indirect() 2019-09-03 15:10:53 -07:00
tree.h tree.c: make read_tree*() take 'struct repository *' 2018-11-19 10:50:33 +09:00
unicode-width.h Merge branch 'bb/unicode-12.1-reiwa' into maint 2019-07-25 14:27:11 -07:00
unimplemented.sh
unix-socket.c
unix-socket.h
unpack-trees.c treewide: remove duplicate #include directives 2019-10-04 08:16:00 +09:00
unpack-trees.h treewide: rename 'struct exclude_list' to 'struct pattern_list' 2019-09-05 14:05:11 -07:00
upload-pack.c Merge branch 'jk/disable-commit-graph-during-upload-pack' 2019-10-07 11:32:55 +09:00
upload-pack.h *.[ch]: manually align parameter lists 2019-05-05 15:20:10 +09:00
url.c list-objects-filter: implement composite filters 2019-06-28 08:41:53 -07:00
url.h list-objects-filter: implement composite filters 2019-06-28 08:41:53 -07:00
urlmatch.c
urlmatch.h *.[ch]: remove extern from function declarations using spatch 2019-05-05 15:20:06 +09:00
usage.c trace2: create new combined trace facility 2019-02-22 15:27:59 -08:00
userdiff.c userdiff: fix some corner cases in dts regex 2019-10-21 17:44:12 +09:00
userdiff.h notes-cache.c: remove the_repository references 2018-11-12 14:50:06 +09:00
utf8.c utf8: use ARRAY_SIZE() in git_wcwidth() 2019-10-12 10:57:39 +09:00
utf8.h *.[ch]: remove extern from function declarations using spatch 2019-05-05 15:20:06 +09:00
varint.c cleanups: ensure that git-compat-util.h is included first 2014-09-15 12:05:14 -07:00
varint.h *.[ch]: remove extern from function declarations using spatch 2019-05-05 15:20:06 +09:00
version.c version --build-options: report commit, too, if possible 2017-12-14 22:53:04 -08:00
version.h
versioncmp.c
walker.c object: convert lookup_unknown_object() to use object_id 2019-06-20 10:06:19 -07:00
walker.h walker: drop fields of struct walker which are always 1 2018-04-24 10:55:04 +09:00
wildmatch.c wildmatch: change behavior of "foo**bar" in WM_PATHNAME mode 2018-10-29 13:19:22 +09:00
wildmatch.h wildmatch: change behavior of "foo**bar" in WM_PATHNAME mode 2018-10-29 13:19:22 +09:00
worktree.c Merge branch 'nd/corrupt-worktrees' into maint 2019-07-25 14:27:07 -07:00
worktree.h *.[ch]: manually align parameter lists 2019-05-05 15:20:10 +09:00
wrap-for-bin.sh Make running git under other debugger-like programs easy 2018-04-25 10:47:22 +09:00
wrapper.c Merge branch 'ah/cleanups' 2019-10-09 14:01:00 +09:00
write-or-die.c write_or_die.c: rename to use dashes in file name 2018-04-11 18:11:00 +09:00
ws.c Merge branch 'nd/the-index' 2018-10-19 13:34:02 +09:00
wt-status.c Merge branch 'bc/object-id-part17' 2019-10-11 14:24:46 +09:00
wt-status.h wt-status: convert struct wt_status to object_id 2019-08-19 15:04:59 -07:00
xdiff-interface.c completion: add more parameter value completion 2019-02-20 12:31:56 -08:00
xdiff-interface.h *.[ch]: manually align parameter lists 2019-05-05 15:20:10 +09:00
zlib.c Replace all die("BUG: ...") calls by BUG() ones 2018-05-06 19:06:13 +09:00

Build Status

Git - fast, scalable, distributed revision control system

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.

Many Git online resources are accessible from https://git-scm.com/ including full documentation and Git related tools.

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 <commandname>.

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

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 git@vger.kernel.org (read Documentation/SubmittingPatches for instructions on patch submission). To subscribe to the list, send an email with just "subscribe git" in the body to majordomo@vger.kernel.org. The mailing list archives are available at https://public-inbox.org/git/, http://marc.info/?l=git and other archival sites.

Issues which are security relevant should be disclosed privately to the Git Security mailing list git-security@googlegroups.com.

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.

The name "git" was given by Linus Torvalds when he wrote the very first version. He described the tool as "the stupid content tracker" and the name as (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