A fork of Git containing Microsoft-specific patches.
Перейти к файлу
Jeff King 28a4e58021 diff: always try to set up the repository
If we see an explicit "--no-index", we do not bother calling
setup_git_directory_gently() at all. This means that we may
miss out on reading repo-specific config.

It's arguable whether this is correct or not. If we were
designing from scratch, making "git diff --no-index"
completely ignore the repository makes some sense. But we
are nowhere near scratch, so let's look at the existing
behavior:

  1. If you're in the top-level of a repository and run an
     explicit "diff --no-index", the config subsystem falls
     back to reading ".git/config", and we will respect repo
     config.

  2. If you're in a subdirectory of a repository, then we
     still try to read ".git/config", but it generally
     doesn't exist. So "diff --no-index" there does not
     respect repo config.

  3. If you have $GIT_DIR set in the environment, we read
     and respect $GIT_DIR/config,

  4. If you run "git diff /tmp/foo /tmp/bar" to get an
     implicit no-index, we _do_ run the repository setup,
     and set $GIT_DIR (or respect an existing $GIT_DIR
     variable). We find the repo config no matter where we
     started, and respect it.

So we already respect the repository config in a number of
common cases, and case (2) is the only one that does not.
And at least one of our tests, t4034, depends on case (1)
behaving as it does now (though it is just incidental, not
an explicit test for this behavior).

So let's bring case (2) in line with the others by always
running the repository setup, even with an explicit
"--no-index". We shouldn't need to change anything else, as the
implicit case already handles the prefix.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2016-09-13 15:45:45 -07:00
Documentation Git 2.8.4 2016-06-06 14:29:32 -07:00
block-sha1 sha1: provide another level of indirection for the SHA-1 functions 2015-11-05 10:35:11 -08:00
builtin diff: always try to set up the repository 2016-09-13 15:45:45 -07:00
ci travis-ci: build documentation 2016-05-10 11:19:07 -07:00
compat Merge branch 'kb/msys2-tty' into maint 2016-06-06 14:27:38 -07:00
contrib git-multimail: update to release 1.3.0 2016-05-03 14:04:27 -07:00
ewah ewah: convert to REALLOC_ARRAY, etc 2016-02-22 14:51:09 -08:00
git-gui git-gui/po/glossary/txt-to-pot.sh: use the $( ... ) construct for command substitution 2015-12-27 15:33:13 -08:00
gitk-git Merge branch 'master' of git://ozlabs.org/~paulus/gitk 2016-03-20 18:05:10 -07:00
gitweb Merge branch 'sk/gitweb-highlight-encoding' into HEAD 2016-05-18 14:40:10 -07:00
mergetools mergetool: reorder vim/gvim buffers in three-way diffs 2016-02-12 10:14:09 -08:00
perl typofix: assorted typofixes in comments, documentation and messages 2016-05-06 13:16:37 -07:00
po l10n-2.8.0-rnd3-fr 2016-04-25 13:36:26 -07:00
ppc sha1: provide another level of indirection for the SHA-1 functions 2015-11-05 10:35:11 -08:00
refs set_worktree_head_symref(): fix error message 2016-04-08 10:26:23 -07:00
t diff: always try to set up the repository 2016-09-13 15:45:45 -07:00
templates Merge branch 'ma/update-hooks-sample-typofix' into maint 2016-03-10 11:13:50 -08:00
vcs-svn
xdiff Merge branch 'rj/xdiff-prepare-plug-leak-on-error-codepath' into maint 2016-04-14 18:57:46 -07:00
.gitattributes
.gitignore gitignore: ignore generated test-fake-ssh executable 2016-02-08 12:18:51 -08:00
.mailmap .mailmap: update to my shorter email address 2016-05-02 13:29:42 -07:00
.travis.yml Merge branch 'ls/travis-build-doc' into maint 2016-05-26 13:17:25 -07:00
COPYING
GIT-VERSION-GEN Git 2.8.4 2016-06-06 14:29:32 -07:00
INSTALL
LGPL-2.1
Makefile Merge branch 'va/i18n-misc-updates' into maint 2016-05-26 13:17:20 -07:00
README.md README.md: move down historical explanation about the name 2016-02-25 09:33:58 -08:00
RelNotes Git 2.8.4 2016-06-06 14:29:32 -07:00
abspath.c Windows: shorten code by re-using convert_slashes() 2016-04-04 18:03:02 -07:00
aclocal.m4
advice.c merge: grammofix in please-commit-before-merge message 2015-10-02 14:29:56 -07:00
advice.h
alias.c convert trivial cases to ALLOC_ARRAY 2016-02-22 14:51:09 -08:00
alloc.c
archive-tar.c archive-tar: convert snprintf to xsnprintf 2016-05-26 10:44:26 -07:00
archive-zip.c
archive.c use st_add and st_mult for allocation size computation 2016-02-22 14:51:09 -08:00
archive.h
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 Merge branch 'ss/exc-flag-is-a-collection-of-bits' into maint 2016-04-14 18:37:15 -07:00
attr.h
base85.c
bisect.c Merge branch 'jk/tighten-alloc' 2016-02-26 13:37:16 -08:00
bisect.h
blob.c
blob.h
branch.c branch -m: update all per-worktree HEADs 2016-04-04 12:57:22 -07:00
branch.h branch -m: update all per-worktree HEADs 2016-04-04 12:57:22 -07:00
builtin.h Merge branch 'sb/submodule-helper' 2015-10-05 12:30:19 -07:00
bulk-checkin.c use xsnprintf for generating git object headers 2015-09-25 10:18:18 -07: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 Merge branch 'jk/tighten-alloc' into maint 2016-03-10 11:13:43 -08:00
cache-tree.h
cache.h Merge branch 'js/windows-dotgit' into maint 2016-05-26 13:17:23 -07:00
check-builtins.sh
check-racy.c
check_bindir
color.c color: add color_set helper for copying raw colors 2015-10-05 11:08:05 -07:00
color.h color: add color_set helper for copying raw colors 2015-10-05 11:08:05 -07:00
column.c use xmallocz to avoid size arithmetic 2016-02-22 14:51:09 -08:00
column.h
combine-diff.c use st_add and st_mult for allocation size computation 2016-02-22 14:51:09 -08:00
command-list.txt
commit-slab.h
commit.c use st_add and st_mult for allocation size computation 2016-02-22 14:51:09 -08:00
commit.h
config.c Merge branch 'tb/core-eol-fix' into maint 2016-06-06 14:27:36 -07:00
config.mak.in
config.mak.uname mingw: make isatty() recognize MSYS2's pseudo terminals (/dev/pty*) 2016-05-26 13:12:02 -07:00
configure.ac Merge branch 'ky/imap-send-openssl-1.1.0' into maint 2016-05-06 14:53:24 -07:00
connect.c Merge branch 'cn/deprecate-ssh-git-url' 2016-03-16 13:16:40 -07:00
connect.h connect & http: support -4 and -6 switches for remote operations 2016-02-12 11:34:14 -08:00
connected.c
connected.h
convert.c convert.c: ident + core.autocrlf didn't work 2016-04-25 12:12:03 -07:00
convert.h ls-files: add eol diagnostics 2016-01-18 19:48:43 -08:00
copy.c
credential-cache--daemon.c Merge branch 'jk/credential-cache-comment-exit' into maint 2016-04-14 18:37:16 -07:00
credential-cache.c credential-cache, send_request: close fd when done 2016-04-01 10:33:18 -07:00
credential-store.c strbuf: introduce strbuf_getline_{lf,nul}() 2016-01-15 10:12:51 -08:00
credential.c strbuf: introduce strbuf_getline_{lf,nul}() 2016-01-15 10:12:51 -08:00
credential.h
csum-file.c
csum-file.h
ctype.c
daemon.c Merge branch 'jk/tighten-alloc' 2016-02-26 13:37:16 -08:00
date.c
decorate.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
decorate.h
delta.h
diff-delta.c
diff-lib.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
diff-no-index.c diff: handle --no-index prefixes consistently 2016-09-13 15:45:45 -07:00
diff.c Merge branch 'jk/tighten-alloc' into maint 2016-03-10 11:13:43 -08:00
diff.h Merge branch 'maint-2.5' into maint-2.6 2016-03-17 11:26:18 -07:00
diffcore-break.c
diffcore-delta.c use st_add and st_mult for allocation size computation 2016-02-22 14:51:09 -08:00
diffcore-order.c convert trivial cases to ALLOC_ARRAY 2016-02-22 14:51:09 -08:00
diffcore-pickaxe.c react to errors in xdi_diff 2015-09-28 14:57:10 -07:00
diffcore-rename.c Merge branch 'sg/diff-multiple-identical-renames' into maint 2016-04-29 14:15:55 -07:00
diffcore.h
dir.c dir.c: remove dead function fnmatch_icase() 2016-04-22 14:07:45 -07:00
dir.h dir.c: remove dead function fnmatch_icase() 2016-04-22 14:07:45 -07:00
editor.c
entry.c use xmallocz to avoid size arithmetic 2016-02-22 14:51:09 -08:00
environment.c Merge branch 'js/windows-dotgit' into maint 2016-05-26 13:17:23 -07:00
exec_cmd.c Merge branch 'ak/extract-argv0-last-dir-sep' into maint 2016-03-10 11:13:47 -08:00
exec_cmd.h prepare_{git,shell}_cmd: use argv_array 2016-02-22 14:51:09 -08:00
fast-import.c Merge branch 'jk/tighten-alloc' 2016-02-26 13:37:16 -08:00
fetch-pack.c fetch-pack: isolate sigpipe in demuxer thread 2016-04-20 13:33:56 -07:00
fetch-pack.h
fmt-merge-msg.h
fsck.c fsck: detect and warn a commit with embedded NUL 2016-05-10 10:02:06 -07:00
fsck.h
generate-cmdlist.sh
gettext.c
gettext.h
git-add--interactive.perl
git-archimport.perl
git-bisect.sh
git-compat-util.h Merge branch 'ky/imap-send-openssl-1.1.0' into maint 2016-05-06 14:53:24 -07:00
git-cvsexportcommit.perl
git-cvsimport.perl
git-cvsserver.perl typofix: assorted typofixes in comments, documentation and messages 2016-05-06 13:16:37 -07:00
git-difftool--helper.sh difftool/mergetool: make the form of yes/no questions consistent 2016-04-25 15:15:17 -07:00
git-difftool.perl difftool: handle unmerged files in dir-diff mode 2016-05-16 14:53: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-one-file.sh Merge branch 'jk/no-diff-emit-common' into maint 2016-03-10 11:13:42 -08:00
git-merge-resolve.sh
git-mergetool--lib.sh difftool/mergetool: make the form of yes/no questions consistent 2016-04-25 15:15:17 -07:00
git-mergetool.sh Merge branch 'nf/mergetool-prompt' into HEAD 2016-05-18 14:40:07 -07:00
git-p4.py git-p4: fix Git LFS pointer parsing 2016-04-28 10:03:13 -07: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-rebase--am.sh
git-rebase--interactive.sh rebase--interactive: avoid empty list in shell for-loop 2016-05-10 14:11:27 -07:00
git-rebase--merge.sh
git-rebase.sh Merge branch 'jk/ok-to-fail-gc-auto-in-rebase' into maint 2016-02-05 14:54:13 -08:00
git-relink.perl
git-remote-testgit.sh
git-request-pull.sh
git-send-email.perl Merge branch 'jd/send-email-to-whom' into HEAD 2016-05-18 14:40:07 -07:00
git-sh-i18n.sh
git-sh-setup.sh sane_grep: pass "-a" if grep accepts it 2016-03-10 15:35:43 -08:00
git-stash.sh Merge branch 'nk/stash-show-config' 2015-10-05 12:30:10 -07:00
git-submodule.sh Merge branch 'sb/submodule-deinit-all' into maint 2016-05-31 14:09:46 -07:00
git-svn.perl git-svn: fix URL canonicalization during init w/ SVN 1.7+ 2016-03-16 20:16:23 +00:00
git-web--browse.sh
git.c patch-id: use RUN_SETUP_GENTLY 2016-09-13 15:45:45 -07:00
git.rc
git.spec.in git.spec.in: use README.md, not README 2016-04-03 10:12:48 -07:00
gpg-interface.c
gpg-interface.h
graph.c convert trivial cases to ALLOC_ARRAY 2016-02-22 14:51:09 -08:00
graph.h
grep.c use xmallocz to avoid size arithmetic 2016-02-22 14:51:09 -08:00
grep.h
hashmap.c convert trivial cases to FLEX_ARRAY macros 2016-02-22 14:51:09 -08:00
hashmap.h
help.c convert trivial cases to FLEX_ARRAY macros 2016-02-22 14:51:09 -08:00
help.h
hex.c add reentrant variants of sha1_to_hex and find_unique_abbrev 2015-09-25 10:18:18 -07:00
http-backend.c Convert struct object to object_id 2015-11-20 08:02:05 -05:00
http-fetch.c
http-push.c Merge branch 'jk/path-name-safety-2.6' into jk/path-name-safety-2.7 2016-03-16 10:42:32 -07:00
http-walker.c http-walker: store url in a strbuf 2015-09-25 10:18:18 -07:00
http.c Merge branch 'bn/http-cookiefile-config' into maint 2016-05-31 14:08:28 -07:00
http.h Merge branch 'ew/force-ipv4' 2016-02-24 13:25:54 -08:00
ident.c Merge branch 'da/user-useconfigonly' into HEAD 2016-05-18 14:40:05 -07:00
imap-send.c Merge branch 'ky/imap-send-openssl-1.1.0' into maint 2016-05-06 14:53:24 -07:00
khash.h convert trivial cases to ALLOC_ARRAY 2016-02-22 14:51:09 -08:00
kwset.c
kwset.h
levenshtein.c convert trivial cases to ALLOC_ARRAY 2016-02-22 14:51:09 -08:00
levenshtein.h
line-log.c convert trivial cases to ALLOC_ARRAY 2016-02-22 14:51:09 -08:00
line-log.h
line-range.c
line-range.h
list-objects.c Merge branch 'jk/path-name-safety-2.6' into jk/path-name-safety-2.7 2016-03-16 10:42:32 -07:00
list-objects.h list-objects: pass full pathname to callbacks 2016-03-16 10:41:04 -07:00
ll-merge.c use xmallocz to avoid size arithmetic 2016-02-22 14:51:09 -08:00
ll-merge.h
lockfile.c lockfile: improve error message when lockfile exists 2016-03-01 10:16:46 -08:00
lockfile.h
log-tree.c convert trivial cases to FLEX_ARRAY macros 2016-02-22 14:51:09 -08:00
log-tree.h
mailinfo.c strbuf: introduce strbuf_getline_{lf,nul}() 2016-01-15 10:12:51 -08:00
mailinfo.h mailinfo: remove calls to exit() and die() deep in the callchain 2015-10-21 15:59:34 -07:00
mailmap.c mailmap: do not resolve blobs in a non-repository 2016-03-06 17:19:11 -08:00
mailmap.h
match-trees.c
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 merge-recursive: find-renames resets threshold 2016-02-24 10:39:02 -08:00
merge-recursive.h merge-recursive: option to disable renames 2016-02-17 10:20:51 -08:00
merge.c Convert struct object to object_id 2015-11-20 08:02:05 -05:00
mergesort.c
mergesort.h
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 Remove get_object_hash. 2015-11-20 08:02:05 -05:00
notes-merge.h
notes-utils.c notes: allow treeish expressions as notes ref 2016-01-12 15:10:01 -08:00
notes-utils.h
notes.c Merge branch 'jk/tighten-alloc' 2016-02-26 13:37:16 -08:00
notes.h Merge branch 'jk/notes-merge-from-anywhere' 2016-02-03 14:15:59 -08:00
object.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
object.h Remove get_object_hash. 2015-11-20 08:02:05 -05:00
pack-bitmap-write.c Merge branch 'jk/path-name-safety-2.6' into jk/path-name-safety-2.7 2016-03-16 10:42:32 -07:00
pack-bitmap.c Merge branch 'jk/path-name-safety-2.6' into jk/path-name-safety-2.7 2016-03-16 10:42:32 -07:00
pack-bitmap.h
pack-check.c convert trivial cases to ALLOC_ARRAY 2016-02-22 14:51:09 -08:00
pack-objects.c
pack-objects.h
pack-revindex.c Merge branch 'jk/tighten-alloc' 2016-02-26 13:37:16 -08:00
pack-revindex.h pack-revindex: store entries directly in packed_git 2015-12-21 14:36:28 -08:00
pack-write.c
pack.h
pager.c Merge branch 'jc/am-i-v-fix' into maint 2016-03-10 11:13:41 -08:00
parse-options-cb.c Merge branch 'kn/for-each-tag-branch' 2015-10-05 12:30:03 -07:00
parse-options.c parse-options: allow -h as a short option 2015-11-20 08:02:07 -05:00
parse-options.h parse-options: allow -h as a short option 2015-11-20 08:02:07 -05:00
patch-delta.c
patch-ids.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
patch-ids.h
path.c Merge branch 'lp/typofixes' into maint 2016-05-26 13:17:21 -07:00
pathspec.c convert trivial cases to ALLOC_ARRAY 2016-02-22 14:51:09 -08:00
pathspec.h
pkt-line.c
pkt-line.h
preload-index.c
pretty.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
prio-queue.c
prio-queue.h
progress.c use xmallocz to avoid size arithmetic 2016-02-22 14:51:09 -08:00
progress.h
prompt.c
prompt.h
quote.c quote: move comment before sq_quote_buf() 2015-10-07 15:12:01 -07:00
quote.h
reachable.c Merge branch 'maint-2.5' into maint-2.6 2016-03-17 11:26:18 -07:00
reachable.h
read-cache.c Merge branch 'nd/ita-cleanup' into maint 2016-02-22 13:10:21 -08:00
ref-filter.c ref-filter.c: mark strings for translation 2016-02-29 14:27:58 -08:00
ref-filter.h branch.c: use 'ref-filter' APIs 2015-09-25 08:54:54 -07:00
reflog-walk.c Merge branch 'dk/reflog-walk-with-non-commit' into maint 2016-02-05 14:54:10 -08:00
reflog-walk.h
refs.c use st_add and st_mult for allocation size computation 2016-02-22 14:51:09 -08:00
refs.h refs: add a new function set_worktree_head_symref 2016-04-04 12:57:21 -07:00
remote-curl.c Merge branch 'jk/tighten-alloc' into maint 2016-03-10 11:13:43 -08:00
remote-testsvn.c strbuf: introduce strbuf_getline_{lf,nul}() 2016-01-15 10:12:51 -08:00
remote.c Merge branch 'nd/remote-plural-ours-plus-theirs' into maint 2016-05-26 13:17:18 -07:00
remote.h remote: simplify remote_is_configured() 2016-02-16 13:33:12 -08:00
replace_object.c
rerere.c Merge branch 'jk/rerere-xsnprintf' 2016-02-17 10:13:33 -08:00
rerere.h Merge branch 'jc/rerere' 2015-10-05 12:30:05 -07:00
resolve-undo.c
resolve-undo.h
revision.c Merge branch 'maint-2.5' into maint-2.6 2016-03-17 11:26:18 -07:00
revision.h Merge branch 'maint-2.5' into maint-2.6 2016-03-17 11:26:18 -07:00
run-command.c Merge branch 'jk/push-client-deadlock-fix' into HEAD 2016-05-18 14:40:06 -07:00
run-command.h Merge branch 'jk/push-client-deadlock-fix' into HEAD 2016-05-18 14:40:06 -07:00
send-pack.c send-pack: isolate sigpipe in demuxer thread 2016-04-20 13:33:53 -07:00
send-pack.h
sequencer.c Merge branch 'jk/tighten-alloc' 2016-02-26 13:37:16 -08:00
sequencer.h
server-info.c Convert struct object to object_id 2015-11-20 08:02:05 -05:00
setup.c Merge branch 'jc/xstrfmt-null-with-prec-0' into maint 2016-05-02 14:24:14 -07:00
sh-i18n--envsubst.c
sha1-array.c
sha1-array.h
sha1-lookup.c
sha1-lookup.h
sha1_file.c Merge branch 'jk/pack-idx-corruption-safety' into maint 2016-03-10 11:13:46 -08:00
sha1_name.c Merge branch 'jk/tighten-alloc' into maint 2016-03-10 11:13:43 -08:00
shallow.c use st_add and st_mult for allocation size computation 2016-02-22 14:51:09 -08:00
shell.c strbuf: introduce strbuf_getline_{lf,nul}() 2016-01-15 10:12:51 -08:00
shortlog.h
show-index.c convert trivial cases to ALLOC_ARRAY 2016-02-22 14:51:09 -08:00
sideband.c convert trivial sprintf / strcpy calls to xsnprintf 2015-09-25 10:18:18 -07:00
sideband.h
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 typofix: assorted typofixes in comments, documentation and messages 2016-05-06 13:16:37 -07:00
split-index.h
strbuf.c Merge branch 'jk/getwholeline-getdelim-empty' into maint 2016-04-14 18:57:46 -07:00
strbuf.h Merge branch 'jc/strbuf-getline' 2016-01-28 16:10:14 -08:00
streaming.c
streaming.h
string-list.c string_list: use string-list API in unsorted_string_list_lookup() 2016-04-25 11:48:27 -07:00
string-list.h
submodule-config.c Merge branch 'sb/misc-cleanups' into HEAD 2016-05-18 14:40:15 -07:00
submodule-config.h push: add recurseSubmodules config option 2015-11-20 08:02:07 -05:00
submodule.c Merge branch 'jk/tighten-alloc' into maint 2016-03-10 11:13:43 -08:00
submodule.h Merge branch 'sb/submodule-parallel-fetch' 2016-01-12 15:16:54 -08:00
symlinks.c
tag.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
tag.h
tar.h
tempfile.c
tempfile.h
test-chmtime.c
test-config.c
test-ctype.c
test-date.c
test-delta.c
test-dump-cache-tree.c test-dump-cache-tree: avoid overflow of cache-tree name 2015-09-25 10:18:18 -07:00
test-dump-split-index.c
test-dump-untracked-cache.c test-dump-untracked-cache: don't modify the untracked cache 2016-01-27 12:30:07 -08:00
test-fake-ssh.c mingw: fix t5601-clone.sh 2016-01-27 14:27:19 -08:00
test-genrandom.c
test-hashmap.c
test-index-version.c
test-line-buffer.c
test-match-trees.c use setup_git_directory() in test-* programs 2016-03-07 12:27:35 -08:00
test-mergesort.c
test-mktemp.c
test-parse-options.c
test-path-utils.c Merge branch 'jk/tighten-alloc' 2016-02-26 13:37:16 -08:00
test-prio-queue.c
test-read-cache.c
test-regex.c
test-revision-walking.c use setup_git_directory() in test-* programs 2016-03-07 12:27:35 -08:00
test-run-command.c run-command: do not pass child process data into callbacks 2016-03-01 09:42:01 -08:00
test-scrap-cache-tree.c
test-sha1-array.c test-sha1-array: read command stream with strbuf_getline() 2016-01-15 10:35:08 -08:00
test-sha1.c
test-sha1.sh test-sha1.sh: use the $( ... ) construct for command substitution 2015-12-27 15:33:13 -08:00
test-sigchain.c
test-string-list.c
test-submodule-config.c
test-subprocess.c
test-svn-fe.c
test-urlmatch-normalization.c
test-wildmatch.c
thread-utils.c
thread-utils.h
trace.c trace: use strbuf for quote_crnl output 2015-09-25 10:18:18 -07:00
trace.h
trailer.c trailer.c: mark strings for translation 2016-02-29 14:27:58 -08:00
trailer.h interpret-trailers: add option for in-place editing 2016-01-14 12:22:17 -08:00
transport-helper.c typofix: assorted typofixes in comments, documentation and messages 2016-05-06 13:16:37 -07:00
transport.c Merge branch 'cn/deprecate-ssh-git-url' 2016-03-16 13:16:40 -07:00
transport.h connect & http: support -4 and -6 switches for remote operations 2016-02-12 11:34:14 -08:00
tree-diff.c Merge branch 'maint-2.4' into maint-2.5 2016-03-17 11:24:14 -07:00
tree-walk.c do_compare_entry: use already-computed path 2016-01-05 13:39:46 -08:00
tree-walk.h do_compare_entry: use already-computed path 2016-01-05 13:39:46 -08:00
tree.c Remove get_object_hash. 2015-11-20 08:02:05 -05:00
tree.h
unicode_width.h
unimplemented.sh unimplemented.sh: use the $( ... ) construct for command substitution 2015-12-27 15:33:13 -08:00
unix-socket.c
unix-socket.h
unpack-trees.c i18n: unpack-trees: avoid substituting only a verb in sentences 2016-05-12 16:28:43 -07:00
unpack-trees.h
update_unicode.sh
upload-pack.c upload-pack: use argv_array for pack_objects 2016-02-25 14:20:25 -08:00
url.c use strbuf_complete to conditionally append slash 2015-10-05 11:08:06 -07:00
url.h
urlmatch.c
urlmatch.h
usage.c
userdiff.c
userdiff.h diff: clarify textconv interface 2016-02-22 10:40:35 -08:00
utf8.c utf8: add function to align a string into given strbuf 2015-09-17 10:02:48 -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
versioncmp.c
walker.c strbuf: introduce strbuf_getline_{lf,nul}() 2016-01-15 10:12:51 -08:00
walker.h
wildmatch.c typofix: assorted typofixes in comments, documentation and messages 2016-05-06 13:16:37 -07:00
wildmatch.h
worktree.c typofix: assorted typofixes in comments, documentation and messages 2016-05-06 13:16:37 -07:00
worktree.h worktree: add details to the worktree struct 2015-10-08 11:57:07 -07:00
wrap-for-bin.sh test: facilitate debugging Git executables in tests with gdb 2015-10-30 14:02:38 -07:00
wrapper.c wrapper.c: delete dead function git_mkstemps() 2016-04-22 14:07:55 -07:00
write_or_die.c write_or_die: handle EPIPE in async threads 2016-02-25 13:51:45 -08:00
ws.c
wt-status.c Merge branch 'sb/misc-cleanups' into HEAD 2016-05-18 14:40:15 -07:00
wt-status.h
xdiff-interface.c convert trivial cases to ALLOC_ARRAY 2016-02-22 14:51:09 -08:00
xdiff-interface.h xdiff: reject files larger than ~1GB 2015-09-28 14:57:23 -07:00
zlib.c

README.md

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-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 http://news.gmane.org/gmane.comp.version-control.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