Git with broken hash generation to generate collisions between object IDs. Don't use this! https://undefinedbehavior.de/posts/commit-vandalism/
Go to file
Stefan Beller 259f3ee296 lib-submodule-update.sh: define tests for recursing into submodules
Currently lib-submodule-update.sh provides 2 functions
test_submodule_switch and test_submodule_forced_switch that are used by a
variety of tests to ensure that submodules behave as expected. The current
expected behavior is that submodules are not touched at all (see
42639d2317 for the exact setup).

In the future we want to teach all these commands to recurse
into submodules. To do that, we'll add two testing functions to
submodule-update-lib.sh: test_submodule_switch_recursing and
test_submodule_forced_switch_recursing.

These two functions behave in analogy to the already existing functions
just with a different expectation on submodule behavior. The submodule
in the working tree is expected to be updated to the recorded submodule
version. The behavior is analogous to e.g. the behavior of files in a
nested directory in the working tree, where a change to the working tree
handles any arising directory/file conflicts just fine.

Signed-off-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2017-03-15 18:15:54 -07:00
block-sha1 sha1: provide another level of indirection for the SHA-1 functions 2015-11-05 10:35:11 -08:00
builtin submodule--helper.c: remove duplicate code 2017-03-15 18:15:53 -07:00
ci travis-ci: build documentation 2016-05-10 11:19:07 -07:00
compat Merge branch 'js/mingw-isatty' into maint 2017-01-31 13:32:11 -08:00
contrib Merge branch 'cw/completion' 2017-02-15 12:54:19 -08:00
Documentation A bit more for -rc2 2017-02-15 14:58:25 -08:00
ewah ewah: convert to REALLOC_ARRAY, etc 2016-02-22 14:51:09 -08:00
git-gui git-gui 0.21.0 2016-10-20 09:33:17 -07:00
gitk-git Merge git://ozlabs.org/~paulus/gitk 2017-01-18 10:27:59 -08:00
gitweb Merge branch 'ab/gitweb-abbrev-links' 2016-10-26 13:14:46 -07:00
mergetools Merge branch 'da/mergetool-xxdiff-hotkey' into maint 2017-01-17 15:11:05 -08:00
perl Merge branch 'va/i18n-perl-scripts' 2016-12-27 00:11:40 -08:00
po gitk: Remove translated message from comments 2017-01-18 21:12:45 +11:00
ppc sha1: provide another level of indirection for the SHA-1 functions 2015-11-05 10:35:11 -08:00
refs Merge branch 'cw/log-updates-for-all-refs-really' 2017-02-03 11:25:19 -08:00
t lib-submodule-update.sh: define tests for recursing into submodules 2017-03-15 18:15:54 -07:00
templates pre-receive.sample: mark it executable 2016-10-28 14:21:11 -07:00
vcs-svn Merge branch 'mr/vcs-svn-printf-ulong' into maint 2016-09-29 16:49:37 -07:00
xdiff Merge branch 'jc/retire-compaction-heuristics' 2017-01-10 15:24:27 -08:00
.gitattributes .gitattributes: set file type for C files 2016-07-07 14:11:15 -07:00
.gitignore relink: retire the command 2017-01-25 14:42:37 -08:00
.mailmap Merge branch 'sg/mailmap-self' 2017-02-02 13:36:57 -08:00
.travis.yml travis-ci: fix Perforce install on macOS 2017-01-23 10:55:00 -08:00
abspath.c Merge branch 'rs/absolute-pathdup' 2017-02-02 13:36:55 -08:00
aclocal.m4
advice.c i18n: advice: internationalize message for conflicts 2016-06-17 15:45:48 -07:00
advice.h pull: check if in unresolved merge state 2015-06-18 13:17:16 -07:00
alias.c convert trivial cases to ALLOC_ARRAY 2016-02-22 14:51:09 -08:00
alloc.c
apply.c apply: use SWAP macro 2017-01-30 14:07:52 -08:00
apply.h apply: learn to use a different index file 2016-09-07 12:29:54 -07:00
archive-tar.c Merge branch 'jk/big-and-future-archive-tar' 2016-08-12 09:47:37 -07:00
archive-zip.c archive-zip: load userdiff config 2017-01-07 18:49:30 -08:00
archive.c archive: read local configuration 2016-11-22 13:55:20 -08:00
archive.h archive: read local configuration 2016-11-22 13:55:20 -08:00
argv-array.c argv-array: add detach function 2016-02-22 14:50:32 -08:00
argv-array.h argv-array: add detach function 2016-02-22 14:50:32 -08:00
attr.c read info/{attributes,exclude} only when in repository 2016-10-26 13:30:51 -07:00
attr.h correct a few doubled-word nits in comments and documentation 2012-03-28 11:18:35 -07:00
base85.c
bisect.c bisect: improve English grammar of not-ancestors message 2016-12-05 14:50:38 -08:00
bisect.h bisect: simplify the addition of new bisect terms 2015-08-03 11:42:41 -07:00
blob.c
blob.h Replace parse_blob() with an explanatory comment 2010-01-18 17:04:02 -08:00
branch.c refs: add option core.logAllRefUpdates = always 2017-01-31 10:01:24 -08:00
branch.h create_branch: drop unused "head" parameter 2016-11-09 14:56:21 -08:00
builtin.h difftool: add a skeleton for the upcoming builtin 2017-01-17 13:32:47 -08:00
bulk-checkin.c compression: unify pack.compression configuration parsing 2016-11-15 21:16:22 -08:00
bulk-checkin.h
bundle.c bundle: don't leak an fd in case of early return 2016-04-01 10:33:18 -07:00
bundle.h
cache-tree.c cache: convert struct cache_entry to use struct object_id 2016-09-07 12:59:42 -07:00
cache-tree.h cache-tree: introduce write_index_as_tree() 2015-08-04 22:02:11 -07:00
cache.h Merge branch 'cw/log-updates-for-all-refs-really' 2017-02-03 11:25:19 -08:00
check_bindir
check-builtins.sh
check-racy.c check-racy.c: use error_errno() 2016-05-09 12:29:08 -07:00
color.c Merge branch 'nd/log-graph-configurable-colors' 2017-02-02 13:36:58 -08:00
color.h Merge branch 'js/color-on-windows-comment' 2016-07-11 10:31:09 -07:00
column.c use xmallocz to avoid size arithmetic 2016-02-22 14:51:09 -08:00
column.h column: support piping stdout to external git-column process 2012-04-27 09:26:38 -07:00
combine-diff.c diff_aligned_abbrev: use "struct oid" 2016-10-26 13:30:51 -07:00
command-list.txt relink: retire the command 2017-01-25 14:42:37 -08:00
commit-slab.h Merge branch 'vs/typofix' 2016-08-12 09:47:37 -07:00
commit.c commit: make ignore_non_trailer take buf/len 2016-11-29 14:22:18 -08:00
commit.h commit: make ignore_non_trailer take buf/len 2016-11-29 14:22:18 -08:00
common-main.c common-main: stop munging argv[0] path 2016-11-29 11:01:48 -08:00
config.c Merge branch 'nd/config-misc-fixes' into maint 2017-01-31 13:32:06 -08:00
config.mak.in
config.mak.uname xdiff: drop XDL_FAST_HASH 2016-12-06 13:27:11 -08:00
configure.ac Merge branch 'dp/autoconf-curl-ssl' into maint 2016-10-28 09:01:13 -07:00
connect.c Merge branch 'ls/filter-process' 2016-10-31 13:15:21 -07:00
connect.h connect & http: support -4 and -6 switches for remote operations 2016-02-12 11:34:14 -08:00
connected.c check_connected: accept an env argument 2016-10-10 13:54:02 -07:00
connected.h check_connected: accept an env argument 2016-10-10 13:54:02 -07:00
convert.c Merge branch 'jc/renormalize-merge-kill-safer-crlf' into maint 2017-01-17 14:49:28 -08:00
convert.h convert: unify the "auto" handling of CRLF 2016-07-06 11:53:51 -07:00
copy.c copy.c: use error_errno() 2016-05-09 12:29:08 -07:00
COPYING
credential-cache--daemon.c i18n: credential-cache--daemon: mark advice for translation 2016-10-17 14:51:47 -07:00
credential-cache.c add an extra level of indirection to main() 2016-07-01 15:09:10 -07:00
credential-store.c add an extra level of indirection to main() 2016-07-01 15:09:10 -07:00
credential.c credential: let empty credential specs reset helper list 2016-02-26 10:58:14 -08:00
credential.h credential: let helpers tell us to quit 2014-12-04 10:11:12 -08:00
csum-file.c
csum-file.h Merge branch 'jk/pack-bitmap' 2014-12-12 14:31:42 -08:00
ctype.c
daemon.c Merge branch 'jk/daemon-path-ok-check-truncation' into maint 2016-11-29 13:27:56 -08:00
date.c date: add "unix" format 2016-07-27 14:15:51 -07:00
decorate.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
decorate.h
delta.h comments: fix misuses of "nor" 2014-03-31 15:29:27 -07:00
diff-delta.c
diff-lib.c commit: fix empty commit creation when there's no changes but ita entries 2016-10-24 10:48:23 -07:00
diff-no-index.c diff: use SWAP macro 2017-01-30 14:23:00 -08:00
diff.c Merge branch 'rs/swap' 2017-02-15 12:54:19 -08:00
diff.h Merge branch 'nd/ita-empty-commit' 2016-10-27 14:58:50 -07:00
diffcore-break.c Merge branch 'tk/diffcore-delta-remove-unused' into maint 2016-11-29 13:28:03 -08:00
diffcore-delta.c Merge branch 'tk/diffcore-delta-remove-unused' 2016-11-17 13:45:22 -08:00
diffcore-order.c use QSORT 2016-09-29 15:42:18 -07:00
diffcore-pickaxe.c Merge branch 'js/regexec-buf' into maint 2016-09-29 16:49:45 -07:00
diffcore-rename.c Merge branch 'tk/diffcore-delta-remove-unused' into maint 2016-11-29 13:28:03 -08:00
diffcore.h Merge branch 'tk/diffcore-delta-remove-unused' into maint 2016-11-29 13:28:03 -08:00
dir-iterator.c dir_iterator: new API for iterating over a directory tree 2016-06-20 11:38:21 -07:00
dir-iterator.h dir_iterator: new API for iterating over a directory tree 2016-06-20 11:38:21 -07:00
dir.c connect_work_tree_and_git_dir: safely create leading directories 2017-03-15 18:15:53 -07:00
dir.h submodule: add absorb-git-dir function 2016-12-12 15:15:07 -08:00
editor.c editor.c: use error_errno() 2016-05-09 12:29:08 -07:00
entry.c streaming: make stream_blob_to_fd take struct object_id 2016-09-07 12:59:42 -07:00
environment.c refs: add option core.logAllRefUpdates = always 2017-01-31 10:01:24 -08:00
exec_cmd.c Merge branch 'js/exec-path-coverity-workaround' into maint 2017-01-31 13:32:10 -08:00
exec_cmd.h common-main: stop munging argv[0] path 2016-11-29 11:01:48 -08:00
fast-import.c Merge branch 'mh/fast-import-notes-fix-new' into maint 2017-01-31 13:32:05 -08:00
fetch-pack.c fetch-pack.c: correct command at the beginning of an error message 2016-11-11 13:28:39 -08:00
fetch-pack.h fetch, upload-pack: --deepen=N extends shallow boundary by N commits 2016-06-13 14:38:16 -07:00
fmt-merge-msg.h
fsck.c fsck: lazily load types under --connectivity-only 2017-01-26 10:51:09 -08:00
fsck.h fsck: give the error function a chance to see the fsck_options 2016-07-18 11:35:00 -07:00
generate-cmdlist.sh generate-cmdlist: re-implement as shell script 2015-08-25 11:24:31 -07:00
gettext.c gettext: add is_utf8_locale() 2016-07-01 12:44:57 -07:00
gettext.h gettext: add is_utf8_locale() 2016-07-01 12:44:57 -07:00
git-add--interactive.perl Merge branch 'jc/retire-compaction-heuristics' 2017-01-10 15:24:27 -08:00
git-archimport.perl
git-bisect.sh i18n: unmark die messages for translation 2016-06-17 15:46:10 -07:00
git-compat-util.h Merge branch 'rs/swap' 2017-02-15 12:54:19 -08:00
git-cvsexportcommit.perl
git-cvsimport.perl Merge branch 'cn/cvsimport-perl-update' 2015-06-25 11:08:08 -07:00
git-cvsserver.perl typofix: assorted typofixes in comments, documentation and messages 2016-05-06 13:16:37 -07:00
git-difftool--helper.sh difftool: always honor fatal error exit codes 2016-08-15 15:24:05 -07:00
git-filter-branch.sh Merge branch 'jk/filter-branch-no-index' into maint 2016-02-05 14:54:13 -08:00
git-instaweb.sh
git-merge-octopus.sh git-merge-octopus: do not capitalize "octopus" 2016-09-08 12:17:10 -07:00
git-merge-one-file.sh Merge branch 'jk/no-diff-emit-common' into maint 2016-03-10 11:13:42 -08:00
git-merge-resolve.sh Convert to use quiet option when available 2009-04-22 19:05:37 -07:00
git-mergetool--lib.sh mergetool: honor mergetool.$tool.trustExitCode for built-in tools 2016-11-29 10:54:03 -08:00
git-mergetool.sh mergetool: fix running in subdir when rerere enabled 2017-01-10 13:22:51 -08:00
git-p4.py Merge branch 'gv/mingw-p4-mapuser' 2017-02-02 13:36:55 -08: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 commandline option --series <file> 2015-09-01 11:10:07 -07:00
git-rebase--am.sh rebase: update comment about FreeBSD /bin/sh 2016-06-17 11:04:38 -07:00
git-rebase--interactive.sh Merge branch 'jk/rebase-i-squash-count-fix' into maint 2017-01-31 13:32:07 -08:00
git-rebase--merge.sh Merge branch 'em/newer-freebsd-shells-are-fine-with-returns' into maint 2016-07-06 13:06:41 -07:00
git-rebase.sh Merge branch 'nd/rebase-forget' 2016-12-19 14:45:35 -08:00
git-remote-testgit.sh
git-request-pull.sh request-pull: drop old USAGE stuff 2017-01-15 16:23:23 -08:00
git-send-email.perl i18n: send-email: mark composing message for translation 2016-12-14 11:00:06 -08:00
git-sh-i18n.sh i18n: rebase-interactive: mark here-doc strings for translation 2016-06-17 15:45:48 -07:00
git-sh-setup.sh Merge branch 'va/i18n-even-more' 2016-12-27 00:11:45 -08:00
git-stash.sh Merge branch 'jk/stash-disable-renames-internally' into maint 2017-01-17 14:49:30 -08:00
git-submodule.sh Merge branch 'sb/submodule-update-initial-runs-custom-script' 2017-02-03 11:25:19 -08:00
git-svn.perl git-svn: "git worktree" awareness 2016-10-14 01:36:12 +00:00
GIT-VERSION-GEN Git 2.12-rc1 2017-02-10 12:54:23 -08:00
git-web--browse.sh
git.c Merge branch 'sb/unpack-trees-super-prefix' 2017-02-03 11:25:18 -08:00
git.rc
gpg-interface.c gpg-interface: use more status letters 2016-10-12 10:41:59 -07:00
gpg-interface.h gpg-interface, tag: add GPG_VERIFY_OMIT_STATUS flag 2017-01-17 16:10:22 -08:00
graph.c Merge branch 'rs/swap' 2017-02-15 12:54:19 -08:00
graph.h graph: add support for --line-prefix on all graph-aware output 2016-08-31 18:07:09 -07:00
grep.c grep: add submodules as a grep source type 2016-12-22 11:47:33 -08:00
grep.h grep: add submodules as a grep source type 2016-12-22 11:47:33 -08:00
hashmap.c convert trivial cases to FLEX_ARRAY macros 2016-02-22 14:51:09 -08:00
hashmap.h
help.c help: improve is_executable() on Windows 2017-01-30 09:04:17 -08:00
help.h
hex.c hex: make wraparound of the index into ring-buffer explicit 2016-10-26 10:54:11 -07:00
http-backend.c pkt-line: rename packet_write() to packet_write_fmt() 2016-10-17 11:36:50 -07:00
http-fetch.c common-main: call git_setup_gettext() 2016-07-01 15:09:10 -07:00
http-push.c Merge branch 'jk/common-main' into maint 2016-09-08 21:35:51 -07:00
http-walker.c Merge branch 'jk/http-walker-limit-redirect-2.9' 2016-12-19 14:45:32 -08:00
http.c Merge branch 'jk/http-walker-limit-redirect' into maint 2017-01-17 14:49:29 -08:00
http.h Merge branch 'jk/http-walker-limit-redirect-2.9' 2016-12-19 14:45:32 -08:00
ident.c Merge branch 'jk/ident-ai-canonname-could-be-null' into maint 2016-10-03 13:22:32 -07:00
imap-send.c Merge branch 'jc/cocci-xstrdup-or-null' into maint 2016-10-28 09:01:23 -07:00
INSTALL
iterator.h refs: introduce an iterator interface 2016-06-20 11:38:20 -07:00
khash.h convert trivial cases to ALLOC_ARRAY 2016-02-22 14:51:09 -08:00
kwset.c
kwset.h kwset: use unsigned char to store values with high-bit set 2015-03-02 12:32:24 -08: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 use QSORT 2016-09-29 15:42:18 -07:00
line-log.h line-log.c: make line_log_data_init() static 2015-01-15 11:05:47 -08:00
line-range.c use SWAP macro 2017-01-30 14:17:00 -08:00
line-range.h
list-objects.c struct name_entry: use struct object_id instead of unsigned char sha1[20] 2016-04-25 14:23:42 -07:00
list-objects.h list-objects: pass full pathname to callbacks 2016-02-12 12:51:17 -08:00
list.h list: avoid incompatibility with *BSD sys/queue.h 2016-07-18 11:06:51 -07:00
ll-merge.c Merge branch 'jc/ll-merge-internal' 2016-05-17 14:38:32 -07:00
ll-merge.h
lockfile.c lockfile: LOCK_REPORT_ON_ERROR 2016-12-07 11:31:59 -08:00
lockfile.h lockfile: move REPORT_ON_ERROR bit elsewhere 2016-12-27 09:12:09 -08:00
log-tree.c graph: add support for --line-prefix on all graph-aware output 2016-08-31 18:07:09 -07:00
log-tree.h Merge branch 'jn/parse-config-slot' 2014-10-20 12:23:48 -07:00
mailinfo.c Merge branch 'jt/mailinfo-fold-in-body-headers' into maint 2017-01-17 15:11:06 -08:00
mailinfo.h mailinfo: handle in-body header continuations 2016-09-21 10:23:11 -07:00
mailmap.c cocci: refactor common patterns to use xstrdup_or_null() 2016-10-12 11:22:10 -07:00
mailmap.h
Makefile Merge branch 'bc/use-asciidoctor-opt' 2017-02-02 13:36:57 -08:00
match-trees.c match-trees: convert several leaf functions to use struct object_id 2016-04-25 14:26:29 -07:00
merge-blobs.c Merge branch 'jk/no-diff-emit-common' into maint 2016-03-10 11:13:42 -08:00
merge-blobs.h
merge-recursive.c use SWAP macro 2017-01-30 14:17:00 -08:00
merge-recursive.h merge-recursive: offer an option to retain the output in 'obuf' 2016-08-01 11:45:30 -07:00
merge.c lockfile: LOCK_REPORT_ON_ERROR 2016-12-07 11:31:59 -08:00
mergesort.c
mergesort.h mergesort: rename it to llist_mergesort() 2012-04-17 11:07:01 -07:00
mru.c add generic most-recently-used list 2016-07-29 11:05:07 -07:00
mru.h add generic most-recently-used list 2016-07-29 11:05:07 -07:00
name-hash.c convert trivial cases to FLEX_ARRAY macros 2016-02-22 14:51:09 -08:00
notes-cache.c notes: allow treeish expressions as notes ref 2016-01-12 15:10:01 -08:00
notes-cache.h
notes-merge.c Merge branch 'va/i18n-more' 2016-09-26 16:09:18 -07:00
notes-merge.h notes: extract enum notes_merge_strategy to notes-utils.h 2015-08-17 15:36:23 -07:00
notes-utils.c notes: allow treeish expressions as notes ref 2016-01-12 15:10:01 -08:00
notes-utils.h notes: extract parse_notes_merge_strategy to notes-utils 2015-08-17 15:38:32 -07:00
notes.c notes: convert init_notes to use struct object_id 2016-09-07 12:59:42 -07:00
notes.h Merge branch 'jk/notes-merge-from-anywhere' 2016-02-03 14:15:59 -08:00
object.c use SWAP macro 2017-01-30 14:17:00 -08:00
object.h upload-pack: add get_reachable_list() 2016-06-13 14:38:16 -07:00
pack-bitmap-write.c use QSORT 2016-09-29 15:42:18 -07:00
pack-bitmap.c sha1_file: rename git_open_noatime() to git_open() 2016-10-25 10:59:13 -07:00
pack-bitmap.h
pack-check.c Merge branch 'jk/verify-packfile-gently' into maint 2016-10-11 14:21:36 -07:00
pack-objects.c
pack-objects.h pack-objects: break delta cycles before delta-search phase 2016-08-11 10:44:13 -07:00
pack-revindex.c use SWAP macro 2017-01-30 14:17:00 -08:00
pack-revindex.h pack-revindex: store entries directly in packed_git 2015-12-21 14:36:28 -08:00
pack-write.c use QSORT 2016-09-29 15:42:18 -07:00
pack.h fsck: use streaming interface for large blobs in pack 2016-07-13 09:15:29 -07:00
pager.c Merge branch 'jk/setup-sequence-update' 2016-09-21 15:15:24 -07:00
parse-options-cb.c Merge branch 'rs/cocci' 2016-10-17 13:25:21 -07:00
parse-options.c parse-options: print "fatal:" before usage_msg_opt() 2016-12-14 09:58:09 -08:00
parse-options.h Merge branch 'mh/diff-indent-heuristic' 2016-09-26 16:09:16 -07:00
patch-delta.c
patch-ids.c patch-ids: refuse to compute patch-id for merge commit 2016-09-12 13:45:01 -07:00
patch-ids.h rebase: avoid computing unnecessary patch IDs 2016-08-11 14:39:16 -07:00
path.c Merge branch 'js/normalize-path-copy-ceil' into maint 2017-01-17 15:11:03 -08:00
pathspec.c pathspec: give better message for submodule related pathspec error 2017-01-09 15:19:22 -08:00
pathspec.h pathspec: copy and free owned memory 2017-01-08 18:04:17 -08:00
pkt-line.c pkt-line: add functions to read/write flush terminated packet streams 2016-10-17 11:36:50 -07:00
pkt-line.h pkt-line: add functions to read/write flush terminated packet streams 2016-10-17 11:36:50 -07:00
preload-index.c
pretty.c pretty: add %(trailers) format for displaying trailers of a commit message 2016-12-11 13:58:41 -08:00
prio-queue.c use SWAP macro 2017-01-30 14:17:00 -08:00
prio-queue.h
progress.c use xmallocz to avoid size arithmetic 2016-02-22 14:51:09 -08:00
progress.h nicer display of thin pack completion 2007-11-08 15:43:41 -08:00
prompt.c
prompt.h prompt.c: remove git_getpass() nobody uses 2015-01-15 11:02:06 -08:00
quote.c Merge branch 'nd/icase' into maint 2016-07-28 11:26:03 -07:00
quote.h Merge branch 'nd/icase' 2016-07-19 13:22:17 -07:00
reachable.c reachable.c: use error_errno() 2016-05-09 12:29:08 -07:00
reachable.h
read-cache.c Merge branch 'sb/in-core-index-doc' 2017-01-31 13:14:59 -08:00
README.md README: replace gmane link with public-inbox 2016-12-15 09:30:09 -08:00
ref-filter.c Merge branch 'rs/qsort-s' 2017-01-31 13:15:00 -08:00
ref-filter.h Merge branch 'st/verify-tag' 2017-01-31 13:14:58 -08:00
reflog-walk.c reflog: continue walking the reflog past root commits 2016-06-06 15:06:44 -07:00
reflog-walk.h convert "enum date_mode" into a struct 2015-06-29 11:39:07 -07:00
refs.c refs: add option core.logAllRefUpdates = always 2017-01-31 10:01:24 -08:00
refs.h refs: add option core.logAllRefUpdates = always 2017-01-31 10:01:24 -08:00
RelNotes Almost ready for 2.11.1 2017-01-17 15:19:11 -08:00
remote-curl.c Merge branch 'dt/smart-http-detect-server-going-away' into maint 2017-01-17 15:19:03 -08:00
remote-testsvn.c common-main: call git_extract_argv0_path() 2016-07-01 15:09:10 -07:00
remote.c Merge branch 'km/branch-get-push-while-detached' into maint 2017-01-31 13:32:08 -08:00
remote.h remote rename: more carefully determine whether a remote is configured 2017-01-19 14:04:23 -08:00
replace_object.c register_replace_ref(): rewrite to take an object_id argument 2015-05-25 12:19:35 -07:00
rerere.c hold_locked_index(): align error handling with hold_lockfile_for_update() 2016-12-07 11:31:59 -08:00
rerere.h Merge branch 'jc/rerere-multi' 2016-04-25 15:17:15 -07:00
resolve-undo.c cache: convert struct cache_entry to use struct object_id 2016-09-07 12:59:42 -07:00
resolve-undo.h convert unmerge_cache to take struct pathspec 2013-07-15 10:56:08 -07:00
revision.c Merge branch 'vn/revision-shorthand-for-side-branch-log' 2016-10-06 14:53:10 -07:00
revision.h Merge branch 'lt/pretty-expand-tabs' 2016-04-13 14:12:36 -07:00
run-command.c Merge branch 'js/mingw-hooks-with-exe-suffix' 2017-02-02 13:36:57 -08:00
run-command.h execv_dashed_external: wait for child on signal death 2017-01-09 13:41:40 -08:00
send-pack.c cocci: refactor common patterns to use xstrdup_or_null() 2016-10-12 11:22:10 -07:00
send-pack.h push: accept push options 2016-07-14 15:50:41 -07:00
sequencer.c sequencer (rebase -i): write out the final message 2017-01-17 14:06:01 -08:00
sequencer.h sequencer (rebase -i): learn about the 'verbose' mode 2017-01-09 14:57:29 -08:00
server-info.c use QSORT 2016-09-29 15:42:18 -07:00
setup.c cache.h: expose the dying procedure for reading gitlinks 2017-01-26 11:00:58 -08:00
sh-i18n--envsubst.c remove unnecessary check before QSORT 2016-09-29 15:42:18 -07:00
sha1_file.c Merge branch 'jk/clear-delta-base-cache-fix' 2017-01-31 13:14:59 -08:00
sha1_name.c Merge branch 'jk/no-looking-at-dotgit-outside-repo' 2016-11-01 12:58:49 -07:00
sha1-array.c Merge branch 'rs/qsort' 2016-10-10 14:03:46 -07:00
sha1-array.h sha1_array: let callbacks interrupt iteration 2016-09-26 11:46:41 -07:00
sha1-lookup.c
sha1-lookup.h
shallow.c Merge branch 'nd/shallow-fixup' into maint 2017-01-17 15:11:05 -08:00
shell.c common-main: call git_setup_gettext() 2016-07-01 15:09:10 -07:00
shortlog.h shortlog: group by committer information 2016-12-15 16:19:13 -08:00
show-index.c common-main: call git_setup_gettext() 2016-07-01 15:09:10 -07:00
sideband.c Merge branch 'lf/recv-sideband-cleanup' into maint 2016-08-08 14:21:41 -07:00
sideband.h sideband.c: make send_sideband() return void 2016-06-16 11:40:19 -07:00
sigchain.c sigchain: add command to pop all common signals 2015-12-16 12:06:08 -08:00
sigchain.h sigchain: add command to pop all common signals 2015-12-16 12:06:08 -08:00
split-index.c split-index: s/eith/with/ typo fix 2016-11-01 11:48:02 -07:00
split-index.h
strbuf.c link_alt_odb_entry: handle normalize_path errors 2016-10-10 13:52:36 -07:00
strbuf.h use SWAP macro 2017-01-30 14:17:00 -08:00
streaming.c Merge branch 'jk/pack-objects-optim-mru' 2016-10-10 14:03:47 -07:00
streaming.h streaming: make stream_blob_to_fd take struct object_id 2016-09-07 12:59:42 -07:00
string-list.c string-list: use QSORT_S in string_list_sort() 2017-01-23 11:02:38 -08:00
string-list.h
submodule-config.c Merge branch 'bw/push-submodule-only' 2017-01-31 13:14:56 -08:00
submodule-config.h Merge branch 'bw/grep-recurse-submodules' 2017-01-18 15:12:11 -08:00
submodule.c connect_work_tree_and_git_dir: safely create leading directories 2017-03-15 18:15:53 -07:00
submodule.h Merge branch 'bw/push-submodule-only' 2017-01-31 13:14:56 -08:00
symlinks.c symlinks: remove PATH_MAX limitation 2014-07-07 11:22:42 -07:00
tag.c gpg-interface, tag: add GPG_VERIFY_OMIT_STATUS flag 2017-01-17 16:10:22 -08:00
tag.h verify-tag: move tag verification code to tag.c 2016-04-22 14:06:46 -07:00
tar.h tar-tree: Introduce write_entry() 2006-03-25 16:35:43 -08:00
tempfile.c mingw: ensure temporary file handles are not inherited by child processes 2016-08-23 09:09:55 -07:00
tempfile.h mingw: ensure temporary file handles are not inherited by child processes 2016-08-23 09:09:55 -07:00
thread-utils.c
thread-utils.h
tmp-objdir.c tmp-objdir: quote paths we add to alternates 2016-12-12 15:10:46 -08:00
tmp-objdir.h tmp-objdir: introduce API for temporary object directories 2016-10-10 13:54:02 -07:00
trace.c trace: do not fall back to stderr 2016-08-05 09:28:17 -07:00
trace.h pkt-line: support tracing verbatim pack contents 2015-06-16 13:24:22 -07:00
trailer.c trailer: have function to describe trailer layout 2016-11-29 14:22:18 -08:00
trailer.h trailer: have function to describe trailer layout 2016-11-29 14:22:18 -08:00
transport-helper.c push options: pass push options to the transport helper 2017-02-08 15:45:01 -08:00
transport.c Merge branch 'bw/push-submodule-only' 2017-01-31 13:14:56 -08:00
transport.h Merge branch 'bw/push-submodule-only' 2017-01-31 13:14:56 -08:00
tree-diff.c Merge branch 'jk/avoid-unbounded-alloca' into maint 2016-07-06 13:06:39 -07:00
tree-walk.c grep: enable recurse-submodules to work on <tree> objects 2016-12-22 11:47:33 -08:00
tree-walk.h fsck: handle bad trees like other errors 2016-09-27 14:09:10 -07:00
tree.c use QSORT 2016-09-29 15:42:18 -07:00
tree.h Merge branch 'jk/squelch-missing-link-warning-for-unreachable' 2015-06-11 09:29:59 -07:00
unicode_width.h unicode_width.h: update the width tables to Unicode 9.0 2016-12-14 09:48:07 -08:00
unimplemented.sh unimplemented.sh: use the $( ... ) construct for command substitution 2015-12-27 15:33:13 -08:00
unix-socket.c
unix-socket.h credentials: add "cache" helper 2011-12-11 23:16:25 -08:00
unpack-trees.c Merge branch 'sb/unpack-trees-super-prefix' 2017-02-03 11:25:18 -08:00
unpack-trees.h
upload-pack.c upload-pack: optionally allow fetching any sha1 2016-11-18 13:06:14 -08:00
url.c introduce hex2chr() for converting two hexadecimal digits to a character 2016-09-07 10:42:46 -07:00
url.h
urlmatch.c
urlmatch.h
usage.c Merge branch 'jk/vreport-sanitize' 2017-01-31 13:14:56 -08:00
userdiff.c userdiff: add built-in pattern for CSS 2016-06-03 14:45:56 -07:00
userdiff.h diff: clarify textconv interface 2016-02-22 10:40:35 -08:00
utf8.c utf8: accept "latin-1" as ISO-8859-1 2016-09-26 18:16:23 -07:00
utf8.h typofix: assorted typofixes in comments, documentation and messages 2016-05-06 13:16:37 -07:00
varint.c
varint.h
version.c
version.h include agent identifier in capability string 2012-08-03 13:03:34 -07:00
versioncmp.c versioncmp: generalize version sort suffix reordering 2017-01-12 12:25:24 -08:00
walker.c walker: let walker_say take arbitrary formats 2016-07-08 10:11:23 -07:00
walker.h walker: let walker_say take arbitrary formats 2016-07-08 10:11:23 -07:00
wildmatch.c typofix: assorted typofixes in comments, documentation and messages 2016-05-06 13:16:37 -07:00
wildmatch.h wildmatch: support "no FNM_PATHNAME" mode 2013-01-01 15:32:37 -08:00
worktree.c Merge branch 'rs/absolute-pathdup' 2017-02-02 13:36:55 -08:00
worktree.h worktree: check if a submodule uses worktrees 2016-12-12 15:15:07 -08:00
wrap-for-bin.sh wrap-for-bin.sh: regenerate bin-wrappers when switching branches 2016-05-10 13:23:34 -07:00
wrapper.c Merge branch 'sb/submodule-parallel-fetch' into maint 2016-07-28 11:26:02 -07:00
write_or_die.c run-command: move check_pipe() from write_or_die to run_command 2016-10-17 11:36:49 -07:00
ws.c
wt-status.c Merge branch 'rs/object-id' 2017-02-03 11:25:19 -08:00
wt-status.h wt-status: teach has_{unstaged,uncommitted}_changes() about submodules 2016-10-07 09:29:31 -07:00
xdiff-interface.c Merge branch 'js/regexec-buf' into maint 2016-09-29 16:49:45 -07:00
xdiff-interface.h Convert read_mmblob to take struct object_id. 2016-09-07 12:59:42 -07:00
zlib.c

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 http://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-.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.

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