Git with broken hash generation to generate collisions between object IDs. Don't use this! https://undefinedbehavior.de/posts/commit-vandalism/
Go to file
Linus Torvalds 53996fe539 Teach 'git checkout' to preload the index contents
This makes git checkout know to use the threaded index preloading if it
is enabled in the config file. You need to have

	[core]
		preloadindex = true

in your config file to see it, and for that feature to make sense your
filesystem needs to be able to do concurrent 'lstat()' lookups, but when
that is the case (especially NFS over a high-latency network), this can
be a noticeable performance win.

But with a low-latency network and at least older Linux NFS clients, this
will clearly potentially cause a lot of lock contention. It may still
speed up the uncached case, but the threading and locking overhead will
result in the cached case likely slowing down.

That was almost certainly fixed by Linux commit fc0f684c2 ("NFS: Remove
BKL from NFS lookup code"), but that one got merged into 2.6.27-rc1, so
older kernel versions than 2.6.27 will not scale very well.

But regardless, it's the right thing to do. If your filesystem doesn't
scale, don't enable index preloading.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-05-09 20:42:39 -07:00
arm fix openssl headers conflicting with custom SHA1 implementations 2008-10-02 18:06:56 -07:00
compat Merge branch 'js/mingw-rename-fix' 2008-11-27 19:25:06 -08:00
contrib Merge branch 'maint-1.6.0' into maint-1.6.1 2009-03-30 13:23:53 -07:00
Documentation GIT 1.6.1.4 2009-05-03 15:29:31 -07:00
git-gui Merge git://repo.or.cz/git-gui 2008-12-17 21:56:48 -08:00
gitk-git Merge git://git.kernel.org/pub/scm/gitk/gitk 2008-12-21 18:31:12 -08:00
gitweb gitweb: add $prevent_xss option to prevent XSS by repository content 2009-02-08 21:51:25 -08:00
mozilla-sha1 fix openssl headers conflicting with custom SHA1 implementations 2008-10-02 18:06:56 -07:00
perl Merge branch 'pb/maint-git-pm-false-dir' into maint 2009-01-23 19:02:41 -08:00
ppc fix openssl headers conflicting with custom SHA1 implementations 2008-10-02 18:06:56 -07:00
t Merge branch 'jc/maint-1.6.0-keep-pack' into maint-1.6.1 2009-05-03 15:01:31 -07:00
templates Fix permission bits on sources checked out with an overtight umask 2008-09-09 13:32:32 -07:00
xdiff Merge branch 'kc/maint-diff-bwi-fix' into maint 2009-02-05 17:52:22 -08:00
.gitattributes git-gui: Use gitattribute "encoding" for file content display 2008-09-24 12:48:31 -07:00
.gitignore add stage to gitignore 2008-12-03 21:29:03 -08:00
.mailmap .mailmap update 2008-07-19 11:25:51 -07:00
abspath.c make_absolute_path(): check bounds when seeing an overlong symlink 2008-12-17 13:36:34 -08:00
alias.c Move split_cmdline() to alias.c 2008-06-30 22:45:50 -07:00
alloc.c Clean up object creation to use more common code 2007-04-16 23:36:16 -07:00
archive-tar.c Replace calls to strbuf_init(&foo, 0) with STRBUF_INIT initializer 2008-10-12 12:36:19 -07:00
archive-zip.c archive: remove unused headers 2008-07-19 11:17:43 -07:00
archive.c Merge branch 'maint' 2008-10-26 16:21:08 -07:00
archive.h archive: declare struct archiver where it's needed 2008-07-25 17:21:04 -07:00
attr.c Fix buffer overflow in prepare_attr_stack 2008-07-16 14:05:50 -07:00
attr.h Fix funny types used in attribute value representation 2007-04-18 16:17:13 -07:00
base85.c decode_85(): fix missing return. 2007-05-30 15:03:50 -07:00
blob.c Clean up object creation to use more common code 2007-04-16 23:36:16 -07:00
blob.h
branch.c Merge branch 'jc/maint-co-track' 2008-10-21 17:58:11 -07:00
branch.h branch: optionally setup branch.*.merge from upstream local branches 2008-02-19 21:17:45 -08:00
builtin-add.c git add: do not add files from a submodule 2009-01-05 10:48:32 -08:00
builtin-annotate.c War on whitespace 2007-06-07 00:04:01 -07:00
builtin-apply.c Merge branch 'jc/maint-apply-fix' into maint 2009-02-05 18:06:11 -08:00
builtin-archive.c git-archive: work in bare repos 2008-10-26 16:19:59 -07:00
builtin-blame.c Merge branch 'jc/maint-1.6.0-blame-s' into maint-1.6.1 2009-04-08 23:02:17 -07:00
builtin-branch.c git-branch: display "was sha1" on branch deletion rather than just "sha1" 2009-03-21 17:30:51 -07:00
builtin-bundle.c Start conforming code to "git subcmd" style 2008-08-30 13:50:48 -07:00
builtin-cat-file.c Replace calls to strbuf_init(&foo, 0) with STRBUF_INIT initializer 2008-10-12 12:36:19 -07:00
builtin-check-attr.c Fix non-literal format in printf-style calls 2008-11-11 14:50:02 -08:00
builtin-check-ref-format.c Start conforming code to "git subcmd" style 2008-08-30 13:50:48 -07:00
builtin-checkout-index.c parse-opt: migrate builtin-checkout-index. 2008-10-19 14:38:04 -07:00
builtin-checkout.c Teach 'git checkout' to preload the index contents 2009-05-09 20:42:39 -07:00
builtin-clean.c Replace calls to strbuf_init(&foo, 0) with STRBUF_INIT initializer 2008-10-12 12:36:19 -07:00
builtin-clone.c builtin_clone: use strbuf in cmd_clone() 2008-11-25 15:34:26 -08:00
builtin-commit-tree.c Merge branch 'bc/maint-diff-hunk-header-fix' into bc/master-diff-hunk-header-fix 2008-09-18 20:32:50 -07:00
builtin-commit.c Merge branch 'maint-1.6.0' into maint-1.6.1 2009-04-05 01:04:38 -07:00
builtin-config.c Use git_pathdup instead of xstrdup(git_path(...)) 2008-10-30 17:52:24 -07:00
builtin-count-objects.c Merge branch 'jc/maint-1.6.0-keep-pack' into maint-1.6.1 2009-05-03 15:01:31 -07:00
builtin-describe.c Merge branch 'sp/maint-describe-all-tag-warning' into maint 2008-12-27 14:21:15 -08:00
builtin-diff-files.c Add cache preload facility 2008-11-14 19:11:49 -08:00
builtin-diff-index.c diff*: fix worktree setup 2008-08-28 20:50:10 -07:00
builtin-diff-tree.c Fix git-diff-tree --stdin 2008-09-10 15:00:17 -07:00
builtin-diff.c reorder ALLOW_TEXTCONV option setting 2008-12-07 19:59:25 -08:00
builtin-fast-export.c Merge branch 'maint-1.6.0' into maint 2009-02-11 18:32:37 -08:00
builtin-fetch--tool.c Replace calls to strbuf_init(&foo, 0) with STRBUF_INIT initializer 2008-10-12 12:36:19 -07:00
builtin-fetch-pack.c Merge branch 'maint' 2008-12-07 15:13:02 -08:00
builtin-fetch.c Teach/Fix pull/fetch -q/-v options 2008-11-14 17:18:32 -08:00
builtin-fmt-merge-msg.c Replace calls to strbuf_init(&foo, 0) with STRBUF_INIT initializer 2008-10-12 12:36:19 -07:00
builtin-for-each-ref.c Fix potentially dangerous uses of mkpath and git_path 2008-10-26 22:25:09 -07:00
builtin-fsck.c Merge branch 'jc/maint-1.6.0-keep-pack' into maint-1.6.1 2009-05-03 15:01:31 -07:00
builtin-gc.c objects to be pruned immediately don't have to be loosened 2009-01-01 04:51:51 -08:00
builtin-grep.c Merge branch 'maint-1.6.0' into maint 2009-02-03 00:32:29 -08:00
builtin-help.c Replace calls to strbuf_init(&foo, 0) with STRBUF_INIT initializer 2008-10-12 12:36:19 -07:00
builtin-http-fetch.c Merge branch 'ho/dashless' 2008-09-09 22:57:35 -07:00
builtin-init-db.c init: Do not segfault on big GIT_TEMPLATE_DIR environment variable 2009-04-18 13:06:40 -07:00
builtin-log.c Merge branch 'jc/maint-format-patch-o-relative' into maint 2009-01-28 23:56:13 -08:00
builtin-ls-files.c Teach ls-files --with-tree=<tree> to work with options other than -c 2008-11-16 00:15:50 -08:00
builtin-ls-remote.c git ls-remote: make usage string match manpage 2008-11-11 13:24:00 -08:00
builtin-ls-tree.c Document git-ls-tree --full-tree 2009-01-01 04:43:23 -08:00
builtin-mailinfo.c mailinfo: 'From:' header should be unfold as well 2009-01-12 15:22:11 -08:00
builtin-mailsplit.c Rename path_list to string_list 2008-07-21 19:11:50 -07:00
builtin-merge-base.c parse-opt: migrate git-merge-base. 2008-10-02 18:46:02 -07:00
builtin-merge-file.c merge-file: handle freopen() failure 2008-12-26 19:10:02 -08:00
builtin-merge-ours.c git-merge-ours: make it a builtin. 2007-11-22 14:21:59 -08:00
builtin-merge-recursive.c merge-recursive: do not clobber untracked working tree garbage 2008-12-15 02:39:57 -08:00
builtin-merge.c Merge branch 'maint-1.6.0' into maint-1.6.1 2009-04-28 00:46:20 -07:00
builtin-mv.c builtin-mv.c: check for unversionned files before looking at the destination. 2009-02-04 11:07:42 -08:00
builtin-name-rev.c Merge branch 'maint' 2008-08-03 14:14:10 -07:00
builtin-pack-objects.c Merge branch 'jc/maint-1.6.0-keep-pack' into maint-1.6.1 2009-05-03 15:01:31 -07:00
builtin-pack-refs.c Make usage strings dash-less 2008-07-13 14:12:48 -07:00
builtin-prune-packed.c has_sha1_pack(): refactor "pretend these packs do not exist" interface 2009-02-28 01:06:06 -08:00
builtin-prune.c make prune report removed objects on -v 2008-09-30 14:30:00 -07:00
builtin-push.c Merge branch 'maint' 2008-10-08 08:05:43 -07:00
builtin-read-tree.c checkout: Fix "initial checkout" detection 2008-11-12 14:16:50 -08:00
builtin-receive-pack.c receive-pack: detect push to current branch of non-bare repo 2008-11-09 10:16:50 -08:00
builtin-reflog.c Merge branch 'ar/maint-mksnpath' into ar/mksnpath 2008-10-30 18:08:58 -07:00
builtin-remote.c Merge branch 'js/maint-1.6.1-remote-remove-mirror' into maint-1.6.1 2009-03-12 21:45:56 -07:00
builtin-rerere.c Always initialize xpparam_t to 0 2008-10-25 12:09:31 -07:00
builtin-reset.c Fix git branch -m for symrefs. 2008-10-26 14:42:57 -07:00
builtin-rev-list.c rev-list: fix showing distance when using --bisect-all 2009-02-08 12:48:28 -08:00
builtin-rev-parse.c Replace calls to strbuf_init(&foo, 0) with STRBUF_INIT initializer 2008-10-12 12:36:19 -07:00
builtin-revert.c builtin-revert.c: release index lock when cherry-picking an empty commit 2009-03-07 12:21:45 -08:00
builtin-rm.c git add --intent-to-add: fix removal of cached emptiness 2008-11-28 19:58:24 -08:00
builtin-send-pack.c send-pack: do not send unknown object name from ".have" to pack-objects 2009-01-27 23:46:59 -08:00
builtin-shortlog.c shortlog: handle multi-line subjects like log --pretty=oneline et. al. do 2009-01-06 22:06:07 -08:00
builtin-show-branch.c Replace calls to strbuf_init(&foo, 0) with STRBUF_INIT initializer 2008-10-12 12:36:19 -07:00
builtin-show-ref.c 'git foo' program identifies itself without dash in die() messages 2008-08-31 09:39:19 -07:00
builtin-stripspace.c Replace calls to strbuf_init(&foo, 0) with STRBUF_INIT initializer 2008-10-12 12:36:19 -07:00
builtin-symbolic-ref.c Make usage strings dash-less 2008-07-13 14:12:48 -07:00
builtin-tag.c Merge branch 'maint' 2008-12-07 15:13:02 -08:00
builtin-tar-tree.c Cosmetical command name fix 2008-09-15 23:11:35 -07:00
builtin-unpack-objects.c Merge branch 'lt/maint-wrap-zlib' into maint 2009-02-05 18:01:00 -08:00
builtin-update-index.c More friendly message when locking the index fails. 2009-02-19 23:22:57 -08:00
builtin-update-ref.c Fix git update-ref --no-deref -d. 2008-10-26 14:44:25 -07:00
builtin-upload-archive.c archive: define MAX_ARGS where it's needed 2008-07-25 17:20:55 -07:00
builtin-verify-pack.c discard revindex data when pack list changes 2008-08-22 22:00:22 -07:00
builtin-verify-tag.c builtin-verify-tag: fix -v option parsing 2008-07-28 23:02:11 -07:00
builtin-write-tree.c git add --intent-to-add: do not let an empty blob be committed by accident 2008-11-30 17:59:19 -08:00
builtin.h Merge branch 'jc/alternate-push' 2008-09-25 09:39:24 -07:00
bundle.c bundle: allow the same ref to be given more than once 2009-01-17 23:00:31 -08:00
bundle.h Move bundle specific stuff into bundle.[ch] 2007-09-19 03:22:30 -07:00
cache-tree.c git add --intent-to-add: do not let an empty blob be committed by accident 2008-11-30 17:59:19 -08:00
cache-tree.h cache-tree.c: make cache_tree_find() static 2008-07-16 08:50:27 -07:00
cache.h Merge branch 'jc/maint-1.6.0-keep-pack' into maint-1.6.1 2009-05-03 15:01:31 -07:00
check_bindir Move all dashed-form commands to libexecdir 2008-06-19 16:00:38 -07:00
check-builtins.sh cherry is built-in, do not ship git-cherry.sh 2006-11-05 11:26:21 -08:00
check-racy.c ce_match_stat, run_diff_files: use symbolic constants for readability 2007-11-10 00:24:51 -08:00
color.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
color.h Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
combine-diff.c Merge branch 'maint-1.6.0' into maint-1.6.1 2009-04-29 13:43:13 -07:00
command-list.txt Officially deprecate repo-config. 2008-01-17 22:52:40 -08:00
commit.c commit.c: make read_graft_file() static 2008-10-02 18:03:35 -07:00
commit.h builtin-blame: Reencode commit messages according to git-log rules. 2008-10-21 14:09:34 -07:00
config.c Merge branch 'maint-1.6.0' into maint-1.6.1 2009-04-17 21:06:11 -07:00
config.mak.in Makefile: introduce NO_PTHREADS 2008-12-02 15:29:12 -08:00
configure.ac configure clobbers LDFLAGS 2009-01-05 19:46:19 -08:00
connect.c connect.c: stricter port validation, silence compiler warning 2008-12-21 01:48:23 -08:00
convert.c Replace calls to strbuf_init(&foo, 0) with STRBUF_INIT initializer 2008-10-12 12:36:19 -07:00
copy.c copy.c: copy_fd - correctly report write errors 2008-04-22 21:21:08 -07:00
COPYING
csum-file.c Merge branch 'maint' 2008-10-10 08:39:20 -07:00
csum-file.h Merge branch 'maint' 2008-10-10 08:39:20 -07:00
ctype.c dir.c: Avoid c99 array initialization 2008-08-28 21:49:51 -07:00
daemon.c daemon: cleanup: factor out xstrdup_tolower() 2008-12-26 19:09:56 -08:00
date.c date/time: do not get confused by fractional seconds 2008-11-13 09:06:58 -08:00
decorate.c decorate: allow const objects to be decorated 2008-08-20 13:30:49 -07:00
decorate.h decorate: allow const objects to be decorated 2008-08-20 13:30:49 -07:00
delta.h Support fetching the memory usage of a delta index 2007-07-12 14:32:35 -07:00
diff-delta.c fix style of a few comments in diff-delta.c 2007-12-18 15:22:28 -08:00
diff-lib.c Avoid unnecessary 'lstat()' calls in 'get_stat_data()' 2009-05-09 20:42:19 -07:00
diff-no-index.c diff --no-index: Do not generate patch output if other output is requested 2009-03-25 12:15:30 -07:00
diff.c Merge branch 'jc/maint-1.6.0-keep-pack' into maint-1.6.1 2009-05-03 15:01:31 -07:00
diff.h userdiff: require explicitly allowing textconv 2008-10-26 14:09:48 -07:00
diffcore-break.c rename: Break filepairs with different types. 2007-12-02 02:24:46 -08:00
diffcore-delta.c optimize diffcore-delta by sorting hash entries. 2007-10-04 00:05:36 -07:00
diffcore-order.c Use xmemdupz() in many places. 2007-09-18 17:42:17 -07:00
diffcore-pickaxe.c War on whitespace 2007-06-07 00:04:01 -07:00
diffcore-rename.c Rename detection: Avoid repeated filespec population 2009-01-21 00:14:12 -08:00
diffcore.h Merge branch 'maint' 2008-11-02 16:36:40 -08:00
dir.c Merge branch 'maint-1.6.0' into maint-1.6.1 2009-05-08 21:12:41 -07:00
dir.h dir.c: make dir_add_name() and dir_add_ignored() static 2008-10-02 17:46:09 -07:00
editor.c Replace calls to strbuf_init(&foo, 0) with STRBUF_INIT initializer 2008-10-12 12:36:19 -07:00
entry.c 'git foo' program identifies itself without dash in die() messages 2008-08-31 09:39:19 -07:00
environment.c Add cache preload facility 2008-11-14 19:11:49 -08:00
exec_cmd.c Merge branch 'js/maint-1.6.0-exec-path-env' into maint-1.6.1 2009-04-08 23:01:10 -07:00
exec_cmd.h Refactor, adding prepare_git_cmd(const char **argv) 2008-07-28 23:02:11 -07:00
fast-import.c Merge branch 'jc/maint-1.6.0-pack-directory' into maint-1.6.1 2009-03-21 22:53:36 -07:00
fetch-pack.h Teach fetch-pack/upload-pack about --include-tag 2008-03-04 23:28:14 -08:00
fixup-builtins make remove-dashes: apply to scripts and programs as well, not just to builtins 2008-07-11 21:13:17 -07:00
fsck.c Merge branch 'maint' 2008-11-11 14:49:50 -08:00
fsck.h add common fsck error printing function 2008-02-25 23:57:35 -08:00
generate-cmdlist.sh generate-cmdlist.sh: avoid selecting synopsis at wrong place 2008-11-30 18:16:32 -08:00
git-add--interactive.perl add -p: warn if only binary changes present 2008-10-26 16:20:24 -07:00
git-am.sh git-am: rename apply_opt_extra file to apply-opt 2008-12-05 20:02:10 -08:00
git-archimport.perl Make usage strings dash-less 2008-07-13 14:12:48 -07:00
git-bisect.sh Merge branch 'maint-1.6.0' into maint-1.6.1 2009-03-12 23:36:57 -07:00
git-compat-util.h Merge branch 'jc/maint-1.6.0-pack-directory' into maint-1.6.1 2009-03-21 22:53:36 -07:00
git-cvsexportcommit.perl Make usage strings dash-less 2008-07-13 14:12:48 -07:00
git-cvsimport.perl Merge branch 'maint' 2008-08-05 21:21:08 -07:00
git-cvsserver.perl cvsserver: Add cvs co -c support 2008-07-19 11:17:43 -07:00
git-filter-branch.sh filter-branch: do not consider diverging submodules a 'dirty worktree' 2009-02-05 17:48:04 -08:00
git-instaweb.sh Make usage strings dash-less 2008-07-13 14:12:48 -07:00
git-lost-found.sh lost-found: use git rev-parse -q 2008-12-03 14:27:17 -08:00
git-merge-octopus.sh git-merge-octopus: use (merge-base A (merge B C D E...)) for stepwise merge 2008-07-30 00:20:51 -07:00
git-merge-one-file.sh git-merge-one-file: fix longstanding stupid thinko 2008-03-18 22:17:17 -07:00
git-merge-resolve.sh Fixing comment in merge strategies 2007-08-30 17:18:22 -07:00
git-mergetool.sh git-mergetool: properly handle "git mergetool -- filename" 2008-12-19 19:10:58 -08:00
git-parse-remote.sh Rewrite "git-frotz" to "git frotz" 2007-07-02 22:52:14 -07:00
git-pull.sh pull: use git rev-parse -q 2008-12-03 14:27:17 -08:00
git-quiltimport.sh Rename .git/rebase to .git/rebase-apply 2008-07-21 18:51:47 -07:00
git-rebase--interactive.sh Fix submodule squashing into unrelated commit 2009-01-28 14:54:58 -08:00
git-rebase.sh rebase: improve error messages about dirty state 2008-12-10 19:07:35 -08:00
git-relink.perl Make usage strings dash-less 2008-07-13 14:12:48 -07:00
git-repack.sh Merge branch 'jc/maint-1.6.0-keep-pack' into maint-1.6.1 2009-05-03 15:01:31 -07:00
git-request-pull.sh request-pull: make usage string match manpage 2008-11-17 02:27:18 -08:00
git-send-email.perl send-email: futureproof split_addrs() sub 2008-12-21 01:57:59 -08:00
git-sh-setup.sh git-sh-setup: Fix scripts whose PWD is a symlink to a work-dir on OS X 2009-01-05 11:46:58 -08:00
git-stash.sh Revert "git-stash: use git rev-parse -q" 2008-12-07 17:30:35 -08:00
git-submodule.sh submodule: use git rev-parse -q 2008-12-03 14:27:18 -08:00
git-svn.perl Get rid of the last remnants of GIT_CONFIG_LOCAL 2008-12-14 16:43:39 -08:00
GIT-VERSION-GEN GIT 1.6.1.4 2009-05-03 15:29:31 -07:00
git-web--browse.sh git-web--browse: Support for using /bin/start on MinGW 2008-09-24 15:49:21 -07:00
git.c git: use run_command() to execute dashed externals 2009-01-28 14:09:37 -08:00
git.spec.in Merge branch 'maint-1.6.0' into maint 2009-02-05 19:38:58 -08:00
graph.c Replace calls to strbuf_init(&foo, 0) with STRBUF_INIT initializer 2008-10-12 12:36:19 -07:00
graph.h graph.c: make many functions static 2008-09-25 08:00:28 -07:00
grep.c Merge branch 'maint-1.6.0' into maint-1.6.1 2009-04-28 00:46:20 -07:00
grep.h git grep: Add "-z/--null" option as in GNU's grep. 2008-10-01 09:14:54 -07:00
hash-object.c Ensure proper setup of git_dir for git-hash-object 2009-02-28 14:09:46 -08:00
hash.c Add 'const' where appropriate to index handling functions 2008-03-09 00:43:48 -08:00
hash.h Add 'const' where appropriate to index handling functions 2008-03-09 00:43:48 -08:00
help.c git wrapper: also use aliases to correct mistyped commands 2008-09-11 23:05:39 -07:00
help.h Merge branch 'ar/autospell' 2008-09-07 23:52:16 -07:00
http-push.c Merge branch 'lt/maint-wrap-zlib' into maint 2009-02-05 18:01:00 -08:00
http-walker.c Merge branch 'lt/maint-wrap-zlib' into maint 2009-02-05 18:01:00 -08:00
http.c Merge branch 'maint' 2008-12-07 15:13:02 -08:00
http.h Work around gcc warnings from curl headers 2008-07-04 00:37:40 -07:00
ident.c Add backslash to list of 'crud' characters in real name 2008-12-02 15:29:13 -08:00
imap-send.c Replace calls to strbuf_init(&foo, 0) with STRBUF_INIT initializer 2008-10-12 12:36:19 -07:00
index-pack.c Merge branch 'jc/maint-1.6.0-pack-directory' into maint-1.6.1 2009-03-21 22:53:36 -07:00
INSTALL Makefile: add install-man rules (quick and normal) 2008-11-02 20:46:52 -08:00
levenshtein.c Document levenshtein.c 2008-11-23 19:23:34 -08:00
levenshtein.h git wrapper: DWIM mistyped commands 2008-08-31 10:14:58 -07:00
list-objects.c process_{tree,blob}: Remove useless xstrdup calls 2009-04-08 22:58:43 -07:00
list-objects.h pack-objects: further work on internal rev-list logic. 2006-09-07 02:46:02 -07:00
ll-merge.c merge-recursive: use strbuf_expand() instead of interpolate() 2008-11-23 19:55:52 -08:00
ll-merge.h merge-recursive: split low-level merge functions out. 2008-02-18 00:46:13 -08:00
lockfile.c More friendly message when locking the index fails. 2009-02-19 23:22:57 -08:00
log-tree.c Fix machine-parseability of 'git log --source' 2008-11-16 00:24:41 -08:00
log-tree.h Add a 'source' decorator for commits 2008-11-04 00:08:03 -08:00
mailmap.c Rename path_list to string_list 2008-07-21 19:11:50 -07:00
mailmap.h Rename path_list to string_list 2008-07-21 19:11:50 -07:00
Makefile Merge branch 'maint-1.6.0' into maint 2009-02-03 23:50:09 -08:00
match-trees.c Improved const correctness for strings 2007-10-21 01:43:27 -04:00
merge-file.c Always initialize xpparam_t to 0 2008-10-25 12:09:31 -07:00
merge-index.c 'git foo' program identifies itself without dash in die() messages 2008-08-31 09:39:19 -07:00
merge-recursive.c Merge branch 'js/maint-merge-recursive-r-d-conflict' into maint 2009-01-13 01:15:19 -08:00
merge-recursive.h merge-recursive: move current_{file,directory}_set to struct merge_options 2008-09-04 22:50:43 -07:00
merge-tree.c Replace xmalloc/memset(0) pairs with xcalloc 2008-10-08 07:30:59 -07:00
mktag.c Replace calls to strbuf_init(&foo, 0) with STRBUF_INIT initializer 2008-10-12 12:36:19 -07:00
mktree.c Replace calls to strbuf_init(&foo, 0) with STRBUF_INIT initializer 2008-10-12 12:36:19 -07:00
name-hash.c Make hash_name_lookup able to do case-independent lookups 2008-04-09 01:22:25 -07:00
object.c bundle: allow the same ref to be given more than once 2009-01-17 23:00:31 -08:00
object.h Merge branch 'js/maint-all-implies-HEAD' into maint 2009-02-05 17:54:12 -08:00
pack-check.c fix openssl headers conflicting with custom SHA1 implementations 2008-10-02 18:06:56 -07:00
pack-redundant.c Make usage strings dash-less 2008-07-13 14:12:48 -07:00
pack-refs.c Enhance hold_lock_file_for_{update,append}() API 2008-10-19 12:35:37 -07:00
pack-refs.h Move pack_refs() and friends into libgit 2008-06-19 15:53:13 -07:00
pack-revindex.c make find_pack_revindex() aware of the nasty world 2008-11-02 15:22:35 -08:00
pack-revindex.h discard revindex data when pack list changes 2008-08-22 22:00:22 -07:00
pack-write.c Merge branch 'jc/maint-1.6.0-pack-directory' into maint-1.6.1 2009-03-21 22:53:36 -07:00
pack.h improve reliability of fixup_pack_header_footer() 2008-08-29 21:51:27 -07:00
pager.c Merge branch 'maint' 2008-12-15 23:06:13 -08:00
parse-options.c Teach/Fix pull/fetch -q/-v options 2008-11-14 17:18:32 -08:00
parse-options.h Teach/Fix pull/fetch -q/-v options 2008-11-14 17:18:32 -08:00
patch-delta.c make patch_delta() error cases a bit more verbose 2006-12-18 15:30:17 -08:00
patch-id.c fix openssl headers conflicting with custom SHA1 implementations 2008-10-02 18:06:56 -07:00
patch-ids.c Make the diff_options bitfields be an unsigned with explicit masks. 2007-11-11 16:54:15 -08:00
patch-ids.h Refactor patch-id filtering out of git-cherry and git-format-patch. 2007-04-11 20:02:03 -07:00
path.c Remove unused normalize_absolute_path() 2009-02-07 12:23:30 -08:00
pkt-line.c Cleanup xread() loops to use read_in_full() 2008-05-03 22:15:25 -07:00
pkt-line.h Fix pkt-line.h to compile with a non-GCC compiler 2006-06-26 02:11:53 -07:00
preload-index.c Makefile: introduce NO_PTHREADS 2008-12-02 15:29:12 -08:00
pretty.c shortlog: handle multi-line subjects like log --pretty=oneline et. al. do 2009-01-06 22:06:07 -08:00
progress.c progress.c: avoid use of dynamic-sized array 2008-06-08 13:56:32 -07:00
progress.h nicer display of thin pack completion 2007-11-08 15:43:41 -08:00
quote.c shrink git-shell by avoiding redundant dependencies 2008-06-27 23:22:00 -07:00
quote.h Make private quote_path() in wt-status.c available as quote_path_relative() 2008-03-07 21:22:25 -08:00
reachable.c process_{tree,blob}: Remove useless xstrdup calls 2009-04-08 22:58:43 -07:00
reachable.h Move traversal of reachable objects into a separate library. 2007-01-06 22:57:34 -08:00
read-cache.c add -u: do not fail to resolve a path as deleted 2009-01-28 17:29:33 -08:00
README README: tutorial.txt is now called gittutorial.txt 2009-01-06 22:12:07 -08:00
reflog-walk.c Rename path_list to string_list 2008-07-21 19:11:50 -07:00
reflog-walk.h git log -g: Complain, but do not fail, when no reflogs are there 2007-07-24 17:28:10 -07:00
refs.c Merge branch 'maint' 2008-11-11 14:49:50 -08:00
refs.h Allow for having for_each_ref() list extra refs 2008-05-04 17:41:44 -07:00
RelNotes Prepare for 1.6.1.4. 2009-02-11 18:44:03 -08:00
remote.c Merge branch 'mk/maint-cg-push' 2008-11-12 22:26:24 -08:00
remote.h remote: add a new 'origin' variable to the struct 2008-11-11 14:19:29 -08:00
rerere.c Make some of fwrite/fclose/write/close failures visible 2008-12-04 18:05:41 -08:00
rerere.h Rename path_list to string_list 2008-07-21 19:11:50 -07:00
revision.c Merge branch 'jc/maint-1.6.0-keep-pack' into maint-1.6.1 2009-05-03 15:01:31 -07:00
revision.h Merge branch 'jc/maint-1.6.0-keep-pack' into maint-1.6.1 2009-05-03 15:01:31 -07:00
run-command.c run_command(): handle missing command errors more gracefully 2009-01-28 14:08:57 -08:00
run-command.h run_command(): help callers distinguish errors 2009-01-28 14:09:35 -08:00
send-pack.h Teach send-pack a mirror mode 2007-11-09 21:14:10 -08:00
server-info.c Use git_pathdup instead of xstrdup(git_path(...)) 2008-10-30 17:52:24 -07:00
setup.c Merge branch 'js/maint-1.6.0-path-normalize' into maint-1.6.1 2009-03-21 22:59:19 -07:00
sha1_file.c Merge branch 'jc/maint-1.6.0-keep-pack' into maint-1.6.1 2009-05-03 15:01:31 -07:00
sha1_name.c Merge branch 'maint-1.6.0' into maint 2009-01-27 15:23:46 -08:00
sha1-lookup.c sha1-lookup: make selection of 'middle' less aggressive 2008-04-09 01:30:18 -07:00
sha1-lookup.h sha1-lookup: more memory efficient search in sorted list of SHA-1 2008-04-09 01:23:52 -07:00
shallow.c Merge branch 'mk/maint-parse-careful' 2008-02-18 20:56:01 -08:00
shell.c shell: do not play duplicated definition games to shrink the executable 2008-08-29 22:38:41 -07:00
shortlog.h Rename path_list to string_list 2008-07-21 19:11:50 -07:00
show-index.c Fix some warnings (on cygwin) to allow -Werror 2008-07-05 17:26:29 -07:00
sideband.c improve handling of sideband message display 2008-09-03 14:51:10 -07:00
sideband.h atomic write for sideband remote messages 2006-10-11 11:13:01 -07:00
strbuf.c Add generic 'strbuf_readlink()' helper function 2008-12-17 13:36:30 -08:00
strbuf.h Add generic 'strbuf_readlink()' helper function 2008-12-17 13:36:30 -08:00
string-list.c Rename path_list to string_list 2008-07-21 19:11:50 -07:00
string-list.h Rename path_list to string_list 2008-07-21 19:11:50 -07:00
symlinks.c Optimize symlink/directory detection 2008-05-10 18:16:31 -07:00
tag.c Merge branch 'mk/maint-parse-careful' 2008-03-02 15:11:07 -08:00
tag.h
tar.h
test-chmtime.c Add --verbose|-v to test-chmtime 2008-10-31 00:19:52 -07:00
test-date.c simplify inclusion of system header files. 2006-12-20 09:51:35 -08:00
test-delta.c Fix compilation of test-delta 2007-05-01 02:59:08 -07:00
test-dump-cache-tree.c add test-dump-cache-tree in Makefile 2009-02-03 22:11:44 -08:00
test-genrandom.c test-genrandom: Add newline to usage string 2009-04-23 01:29:00 -07:00
test-match-trees.c A new merge stragety 'subtree'. 2007-04-07 02:29:40 -07:00
test-parse-options.c test-parse-options: use appropriate cast in length_callback 2008-08-13 18:11:44 -07:00
test-path-utils.c Test and fix normalize_path_copy() 2009-02-07 12:23:30 -08:00
test-sha1.c fix openssl headers conflicting with custom SHA1 implementations 2008-10-02 18:06:56 -07:00
test-sha1.sh more tr portability test script fixes 2008-03-13 00:57:52 -07:00
thread-utils.c pack-objects: Add runtime detection of online CPU's 2008-02-23 12:00:32 -08:00
thread-utils.h pack-objects: Add runtime detection of online CPU's 2008-02-23 12:00:32 -08:00
trace.c Trace and quote with argv: get rid of unneeded count argument. 2007-12-03 22:11:53 -08:00
transport.c Merge branch 'rs/alloc-ref' 2008-10-21 17:58:01 -07:00
transport.h Implement git clone -v 2008-10-09 11:26:17 -07:00
tree-diff.c tree_entry_interesting: a pathspec only matches at directory boundary 2009-04-01 19:35:16 -07:00
tree-walk.c Fix tree-walking compare_entry() in the presense of --prefix 2008-03-09 00:43:47 -08:00
tree-walk.h Make 'traverse_trees()' traverse conflicting DF entries in parallel 2008-03-09 00:43:47 -08:00
tree.c match_tree_entry(): a pathspec only matches at directory boundaries 2009-04-01 19:35:31 -07:00
tree.h add context pointer to read_tree_recursive() 2008-07-15 07:17:59 -07:00
unpack-file.c Provide git_config with a callback-data parameter 2008-05-14 12:34:44 -07:00
unpack-trees.c Merge branch 'maint-1.6.0' into maint 2009-01-31 17:42:17 -08:00
unpack-trees.h checkout: do not lose staged removal 2008-09-09 22:55:22 -07:00
update-server-info.c Make usage strings dash-less 2008-07-13 14:12:48 -07:00
upload-pack.c 'git foo' program identifies itself without dash in die() messages 2008-08-31 09:39:19 -07:00
usage.c usage.c: remove unused functions 2008-09-29 07:30:16 -07:00
userdiff.c userdiff: require explicitly allowing textconv 2008-10-26 14:09:48 -07:00
userdiff.h userdiff: require explicitly allowing textconv 2008-10-26 14:09:48 -07:00
utf8.c utf8: add utf8_strwidth() 2009-02-04 16:30:43 -08:00
utf8.h utf8: add utf8_strwidth() 2009-02-04 16:30:43 -08:00
var.c Replace uses of "git-var" with "git var" 2008-07-30 11:42:01 -07:00
walker.c make alloc_ref_from_str() the new alloc_ref() 2008-10-18 06:53:47 -07:00
walker.h Make walker.fetch_ref() take a struct ref. 2008-04-26 17:36:17 -07:00
wrapper.c Merge branch 'jc/maint-1.6.0-pack-directory' into maint-1.6.1 2009-03-21 22:53:36 -07:00
write_or_die.c Move read_in_full() and write_in_full() to wrapper.c 2008-07-20 17:17:09 -07:00
ws.c Replace calls to strbuf_init(&foo, 0) with STRBUF_INIT initializer 2008-10-12 12:36:19 -07:00
wt-status.c reorder ALLOW_TEXTCONV option setting 2008-12-07 19:59:25 -08:00
wt-status.h Add argument 'no' commit/status option -u|--untracked-files 2008-06-09 15:48:19 -07:00
xdiff-interface.c xdiff-interface.c: remove 10 duplicated lines 2008-11-26 10:47:41 -08:00
xdiff-interface.h add xdi_diff_hunks() for callers that only need hunk lengths 2008-10-25 12:09:31 -07:00

////////////////////////////////////////////////////////////////

	GIT - the stupid content tracker

////////////////////////////////////////////////////////////////

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

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

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

Git is an Open Source project covered by the GNU General Public License.
It was originally written by Linus Torvalds with help of a group of
hackers around the net. It is currently maintained by Junio C Hamano.

Please read the file INSTALL for installation instructions.
See Documentation/gittutorial.txt to get started, then see
Documentation/everyday.txt for a useful minimum set of commands,
and "man git-commandname" for documentation of each command.
CVS users may also want to read Documentation/cvs-migration.txt.

Many Git online resources are accessible from http://git.or.cz/
including full documentation and Git related tools.

The user discussion and development of Git take place on the Git
mailing list -- everyone is welcome to post bug reports, feature
requests, comments and patches to git@vger.kernel.org. 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://marc.theaimsgroup.com/?l=git and other archival sites.

The messages titled "A note from the maintainer", "What's in
git.git (stable)" and "What's cooking in git.git (topics)" and
the discussion following them on the mailing list give a good
reference for project status, development direction and
remaining tasks.