Git with broken hash generation to generate collisions between object IDs. Don't use this! https://undefinedbehavior.de/posts/commit-vandalism/
Go to file
Nguyễn Thái Ngọc Duy c904cd89e4 tree_entry_interesting: do basedir compare on wildcard patterns when possible
Currently we treat "*.c" and "path/to/*.c" the same way. Which means
we check all possible paths in repo against "path/to/*.c". One could
see that "path/elsewhere/foo.c" obviously cannot match "path/to/*.c"
and we only need to check all paths _inside_ "path/to/" against that
pattern.

This patch checks the leading fixed part of a pathspec against base
directory and exit early if possible. We could even optimize further
in "path/to/something*.c" case (i.e. check the fixed part against
name_entry as well) but that's more complicated and probably does not
gain us much.

-O2 build on linux-2.6, without and with this patch respectively:

$ time git rev-list --quiet HEAD -- 'drivers/*.c'

real    1m9.484s
user    1m9.128s
sys     0m0.181s

$ time ~/w/git/git rev-list --quiet HEAD -- 'drivers/*.c'

real    0m15.710s
user    0m15.564s
sys     0m0.107s

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-11-26 11:16:34 -08:00
block-sha1 Merge branch 'jn/block-sha1' into maint 2012-08-06 15:40:00 -07:00
builtin pathspec: save the non-wildcard length part 2012-11-19 13:08:28 -08:00
compat Merge branch 'js/mingw-fflush-errno' 2012-10-25 06:43:01 -04:00
contrib Merge branch 'fc/completion-send-email-with-format-patch' 2012-11-09 12:50:45 -05:00
Documentation Sync with maint 2012-11-18 19:48:31 -08:00
git_remote_helpers
git-gui git-gui 0.17.0 2012-10-17 15:55:46 -07:00
gitk-git Merge branch 'da/gitk-reload-tag-contents' into maint-1.7.11 2012-09-14 20:45:55 -07:00
gitweb gitweb.cgi: fix "comitter_tz" typo in feed 2012-10-12 08:43:12 -07:00
mergetools Merge branch 'da/mergetools-p4' 2012-10-25 06:42:57 -04:00
perl git svn: work around SVN 1.7 mishandling of svn:special changes 2012-10-10 20:02:33 +00:00
po Merge branch 'master' of https://github.com/nafmo/git-l10n-sv 2012-10-17 09:38:30 +08:00
ppc fix openssl headers conflicting with custom SHA1 implementations 2008-10-02 18:06:56 -07:00
t Merge branch 'jc/prettier-pretty-note' 2012-11-15 10:25:05 -08:00
templates
vcs-svn remote-svn: add incremental import 2012-10-07 14:10:17 -07:00
xdiff Merge branch 'rs/xdiff-fast-hash-fix' 2012-05-25 12:05:02 -07:00
.gitattributes
.gitignore Merge branch 'fa/remote-svn' 2012-10-25 06:42:02 -04:00
.mailmap Update mailmap for a handful of folks 2012-09-03 16:24:23 -07:00
abspath.c real_path(): properly handle nonexistent top-level paths 2012-09-06 16:19:58 -07:00
aclocal.m4
advice.c Merge branch 'jk/maint-advise-vaddf' into maint 2012-07-30 13:05:25 -07:00
advice.h
alias.c
alloc.c
archive-tar.c archive: ustar header checksum is computed unsigned 2012-06-13 10:47:21 -07:00
archive-zip.c archive-zip: write extended timestamp 2012-09-24 10:22:03 -07:00
archive.c Reduce translations by using same terminologies 2012-08-22 12:02:28 -07:00
archive.h
argv-array.c Merge branch 'fa/remote-svn' 2012-10-25 06:42:02 -04:00
argv-array.h Merge branch 'fa/remote-svn' 2012-10-25 06:42:02 -04:00
attr.c Merge branch 'nd/attr-match-optim-more' 2012-11-09 12:42:25 -05:00
attr.h
base85.c Standardize do { ... } while (0) style 2010-08-12 15:44:51 -07:00
bisect.c Move estimate_bisect_steps to libgit.a 2012-10-29 03:08:30 -04:00
bisect.h Move print_commit_list to libgit.a 2012-10-29 03:08:30 -04:00
blob.c
blob.h
branch.c Remove i18n legos in notifying new branch tracking setup 2012-06-07 11:46:02 -07:00
branch.h
builtin.h Move setup_diff_pager to libgit.a 2012-10-29 03:08:30 -04:00
bulk-checkin.c
bulk-checkin.h bulk-checkin: replace fast-import based implementation 2011-12-01 11:46:09 -08:00
bundle.c tweak "bundle verify" of a complete history 2012-06-04 16:24:49 -07:00
bundle.h
cache-tree.c
cache-tree.h
cache.h pathspec: apply "*.c" optimization from exclude 2012-11-26 11:13:13 -08:00
check_bindir
check-builtins.sh
check-racy.c
color.c
color.h
column.c
column.h
combine-diff.c Merge branch 'jk/maint-null-in-trees' into maint-1.7.11 2012-09-10 15:24:54 -07:00
command-list.txt command-list: mention git-credential-* helpers 2012-08-08 12:11:54 -07:00
commit.c Move print_commit_list to libgit.a 2012-10-29 03:08:30 -04:00
commit.h Merge branch 'jc/prettier-pretty-note' 2012-11-15 10:25:05 -08:00
config.c Remove the hard coded length limit on variable names in config files 2012-10-01 12:27:45 -07:00
config.mak.in build: don't duplicate substitution of make variables 2012-09-11 10:24:39 -07:00
configure.ac Merge branch 'sl/maint-configure-messages' 2012-11-04 08:00:13 -05:00
connect.c Merge branch 'jc/capabilities' into maint 2012-09-11 11:06:45 -07:00
connected.c
connected.h check_everything_connected(): libify 2011-09-09 15:19:02 -07:00
convert.c
convert.h
copy.c
COPYING
credential-cache--daemon.c credentials: add "cache" helper 2011-12-11 23:16:25 -08:00
credential-cache.c
credential-store.c
credential.c credential: convert "url" attribute into its parsed subparts 2012-07-18 13:26:58 -07:00
credential.h git credential fill: output the whole 'struct credential' 2012-06-25 11:56:24 -07:00
csum-file.c
csum-file.h
ctype.c
daemon.c daemon: --access-hook option 2012-08-15 11:01:55 -07:00
date.c Merge branch 'jc/maint-filter-branch-epoch-date' 2012-07-22 12:55:05 -07:00
decorate.c
decorate.h
delta.h
diff-delta.c
diff-lib.c diff: do not use null sha1 as a sentinel value 2012-07-29 15:04:32 -07:00
diff-no-index.c Merge branch 'tr/void-diff-setup-done' into maint-1.7.11 2012-09-11 10:53:40 -07:00
diff.c Merge branch 'nd/builtin-to-libgit' 2012-11-09 12:51:06 -05:00
diff.h Move setup_diff_pager to libgit.a 2012-10-29 03:08:30 -04:00
diffcore-break.c Add a macro DIFF_QUEUE_CLEAR. 2010-05-07 09:34:27 -07:00
diffcore-delta.c
diffcore-order.c
diffcore-pickaxe.c diff_grep: use textconv buffers for add/deleted files 2012-10-28 07:59:44 -04:00
diffcore-rename.c Merge branch 'jk/maint-null-in-trees' into maint-1.7.11 2012-09-10 15:24:54 -07:00
diffcore.h Merge branch 'jk/maint-null-in-trees' into maint-1.7.11 2012-09-10 15:24:54 -07:00
dir.c pathspec: apply "*.c" optimization from exclude 2012-11-26 11:13:13 -08:00
dir.h pathspec: apply "*.c" optimization from exclude 2012-11-26 11:13:13 -08:00
editor.c
entry.c
environment.c git on Mac OS and precomposed unicode 2012-07-08 22:03:46 -07:00
exec_cmd.c
exec_cmd.h Refactor git_set_argv0_path() to git_extract_argv0_path() 2009-01-26 00:26:05 -08:00
fast-import.c Merge branch 'jc/merge-bases' 2012-09-11 11:36:05 -07:00
fetch-pack.c fetch-pack: move core code to libgit.a 2012-10-29 03:40:29 -04:00
fetch-pack.h filter_refs(): delete matched refs from sought list 2012-09-12 11:46:31 -07:00
fixup-builtins
fmt-merge-msg.h
fsck.c Merge branch 'jk/maint-null-in-trees' 2012-08-27 11:54:28 -07:00
fsck.h Check the format of more printf-type functions 2009-11-15 18:24:58 -08:00
generate-cmdlist.sh
gettext.c fetch: align per-ref summary report in UTF-8 locales 2012-09-14 12:45:50 -07:00
gettext.h Merge branch 'nd/fetch-status-alignment' 2012-09-18 14:35:55 -07:00
git-add--interactive.perl git-add--interactive.perl: Remove two unused variables 2012-06-25 10:06:09 -07:00
git-am.sh Merge branch 'nd/am-i18n-fix' 2012-09-07 11:09:04 -07:00
git-archimport.perl
git-bisect.sh Merge branch 'js/bisect-no-checkout' 2011-10-17 21:37:09 -07:00
git-compat-util.h Merge branch 'js/format-2047' 2012-11-09 12:42:32 -05:00
git-cvsexportcommit.perl
git-cvsimport.perl cvsimport: work around perl tzset issue 2012-11-04 08:02:41 -05:00
git-cvsserver.perl cvsserver status: provide real sticky info 2012-10-16 16:16:27 -07:00
git-difftool--helper.sh
git-difftool.perl difftool: silence warning 2012-08-21 15:27:15 -07:00
git-filter-branch.sh filter-branch: use git-sh-setup's ident parsing functions 2012-10-18 15:43:49 -07:00
git-instaweb.sh
git-lost-found.sh
git-merge-octopus.sh
git-merge-one-file.sh
git-merge-resolve.sh
git-mergetool--lib.sh Merge branch 'da/mergetool-custom' 2012-10-01 12:58:57 -07:00
git-mergetool.sh mergetool: style fixes 2012-08-23 21:30:51 -07:00
git-p4.py Merge branch 'pw/p4-submit-conflicts' 2012-09-18 14:36:17 -07:00
git-parse-remote.sh push/pull: adjust missing upstream help text to changed interface 2012-11-08 11:32:38 -05:00
git-pull.sh git-pull: Avoid merge-base on detached head 2012-10-25 05:32:11 -04:00
git-quiltimport.sh
git-rebase--am.sh rebase: don't source git-sh-setup twice 2012-06-26 13:17:50 -07:00
git-rebase--interactive.sh Merge branch 'aw/rebase-i-edit-todo' 2012-09-29 22:28:12 -07:00
git-rebase--merge.sh rebase: don't source git-sh-setup twice 2012-06-26 13:17:50 -07:00
git-rebase.sh rebase -i: Teach "--edit-todo" action 2012-09-17 20:59:14 -07:00
git-relink.perl
git-remote-testgit.py
git-repack.sh
git-request-pull.sh request-pull: really favor a matching tag 2012-06-01 12:38:19 -07:00
git-send-email.perl git-send-email: add rfc2047 quoting for "=?" 2012-10-25 06:06:00 -04:00
git-sh-i18n.sh
git-sh-setup.sh git-sh-setup: refactor ident-parsing functions 2012-10-18 15:40:13 -07:00
git-stash.sh Merge branch 'ph/stash-rerere' into maint-1.7.11 2012-09-11 11:10:12 -07:00
git-submodule.sh Merge branch 'ph/submodule-sync-recursive' 2012-11-15 10:24:01 -08:00
git-svn.perl git-svn: use path accessor for Git::SVN objects 2012-10-05 22:48:12 +00:00
GIT-VERSION-GEN Git 1.8.0 2012-10-21 13:56:23 -07:00
git-web--browse.sh git-web--browse: avoid the use of eval 2011-10-03 10:47:07 -07:00
git.c Move setup_diff_pager to libgit.a 2012-10-29 03:08:30 -04:00
git.spec.in
gpg-interface.c ident: rename IDENT_ERROR_ON_NO_NAME to IDENT_STRICT 2012-05-24 17:16:41 -07:00
gpg-interface.h
graph.c graph.c: mark private file-scope symbols as static 2012-09-15 22:58:20 -07:00
graph.h graph.c: mark private file-scope symbols as static 2012-09-15 22:58:20 -07:00
grep.c Merge branch 'nd/grep-true-path' into maint 2012-11-18 19:32:30 -08:00
grep.h Merge branch 'nd/grep-true-path' into maint 2012-11-18 19:32:30 -08:00
hash.c for_each_hash: allow passing a 'void *data' pointer to callback 2011-02-18 22:25:51 -08:00
hash.h
help.c help.c::exclude_cmds(): plug a leak 2012-07-25 11:08:59 -07:00
help.h
hex.c
http-backend.c
http-fetch.c
http-push.c Merge branch 'jc/merge-bases' 2012-09-11 11:36:05 -07:00
http-walker.c Rename static function fetch_pack() to http_fetch_pack() 2012-09-12 11:46:31 -07:00
http.c Merge branch 'sz/maint-curl-multi-timeout' 2012-11-09 12:50:56 -05:00
http.h http: do not set up curl auth after a 401 2012-10-12 09:45:15 -07:00
ident.c ident.c: mark private file-scope symbols as static 2012-09-15 22:58:21 -07:00
imap-send.c remove superfluous newlines in error messages 2012-04-30 15:45:51 -07:00
INSTALL INSTALL: update asciidoc recommendation 2012-05-30 09:07:04 -07:00
kwset.c sparse: Fix an "Using plain integer as NULL pointer" warning 2011-09-11 14:43:14 -07:00
kwset.h Adapt the kwset code to Git 2011-08-20 22:33:57 -07:00
levenshtein.c
levenshtein.h
LGPL-2.1 provide a copy of the LGPLv2.1 2011-05-19 18:23:17 -07:00
list-objects.c
list-objects.h
ll-merge.c Merge branch 'jc/ll-merge-binary-ours' into maint 2012-10-17 10:26:51 -07:00
ll-merge.h
lockfile.c Name make_*_path functions more accurately 2011-03-17 16:08:30 -07:00
log-tree.c format-patch: add a blank line between notes and diffstat 2012-11-13 15:02:46 -08:00
log-tree.h format-patch: refactor get_patch_filename 2012-05-22 09:08:50 -07:00
mailmap.c mailmap: avoid out-of-bounds memory access 2012-10-28 07:50:18 -04:00
mailmap.h mailmap.c: remove unused function 2010-01-12 01:06:09 -08:00
Makefile Merge branch 'js/hp-nonstop' 2012-11-15 10:24:13 -08:00
match-trees.c Make "subtree" part more orthogonal to the rest of merge-recursive. 2010-01-17 22:46:28 -08:00
merge-file.c
merge-file.h
merge-recursive.c Merge branch 'rj/path-cleanup' 2012-09-14 11:53:53 -07:00
merge-recursive.h Move try_merge_command and checkout_fast_forward to libgit.a 2012-10-29 03:08:30 -04:00
merge.c Move try_merge_command and checkout_fast_forward to libgit.a 2012-10-29 03:08:30 -04:00
mergesort.c
mergesort.h
name-hash.c
notes-cache.c
notes-cache.h
notes-merge.c Sync with 1.7.11.6 2012-09-11 11:23:54 -07:00
notes-merge.h Convert commit_tree() to take strbuf as message 2011-12-15 10:46:42 -08:00
notes.c Merge branch 'jc/prettier-pretty-note' 2012-11-15 10:25:05 -08:00
notes.h format_note(): simplify API 2012-10-17 22:42:40 -07:00
object.c
object.h
pack-check.c
pack-refs.c
pack-refs.h Move pack_refs() and friends into libgit 2008-06-19 15:53:13 -07:00
pack-revindex.c
pack-revindex.h
pack-write.c
pack.h
pager.c Move setup_diff_pager to libgit.a 2012-10-29 03:08:30 -04:00
parse-options-cb.c
parse-options.c git on Mac OS and precomposed unicode 2012-07-08 22:03:46 -07:00
parse-options.h i18n: mark "style" in OPT_COLUMN() for translation 2012-08-20 12:23:14 -07:00
patch-delta.c
patch-ids.c diff_setup_done(): return void 2012-08-03 12:11:07 -07:00
patch-ids.h
path.c path.c: Use vsnpath() in the implementation of git_path() 2012-09-04 13:34:46 -07:00
pkt-line.c remove the impression of unexpectedness when access is denied 2012-06-19 13:37:02 -07:00
pkt-line.h remove the impression of unexpectedness when access is denied 2012-06-19 13:37:02 -07:00
preload-index.c
pretty.c Merge branch 'jc/prettier-pretty-note' 2012-11-15 10:25:05 -08:00
progress.c
progress.h
prompt.c
prompt.h
quote.c
quote.h
reachable.c
reachable.h
read-cache.c read-cache.c: mark a private file-scope symbol as static 2012-09-15 22:58:21 -07:00
README
reflog-walk.c Merge branch 'jk/maint-reflog-walk-count-vs-time' into maint 2012-05-14 11:46:16 -07:00
reflog-walk.h Merge branch 'jk/maint-reflog-walk-count-vs-time' 2012-05-11 11:30:08 -07:00
refs.c Merge branch 'rs/lock-correct-ref-during-delete' 2012-11-09 12:42:28 -05:00
refs.h
RelNotes Start preparing for 1.8.0.1 2012-11-18 19:47:19 -08:00
remote-curl.c Merge branch 'jk/maint-http-init-not-in-result-handler' 2012-10-29 04:13:09 -04:00
remote-testsvn.c remote-svn: add marks-file regeneration 2012-10-07 14:10:17 -07:00
remote.c Merge branch 'jc/maint-fetch-tighten-refname-check' 2012-11-15 10:22:54 -08:00
remote.h add sorting infrastructure for list refs 2012-05-22 13:31:03 -07:00
replace_object.c
rerere.c rerere.c: mark private file-scope symbols as static 2012-09-15 22:58:20 -07:00
rerere.h rerere.c: mark private file-scope symbols as static 2012-09-15 22:58:20 -07:00
resolve-undo.c
resolve-undo.h build: make code "-Wpointer-arith" clean 2010-02-01 22:04:03 -08:00
revision.c Merge branch 'jc/prettier-pretty-note' 2012-11-15 10:25:05 -08:00
revision.h format-patch --notes: show notes after three-dashes 2012-10-17 22:42:40 -07:00
run-command.c Merge branch 'jk/no-more-pre-exec-callback' 2012-10-25 06:41:15 -04:00
run-command.h pager: drop "wait for output to run less" hack 2012-06-05 09:38:00 -07:00
send-pack.c send-pack: move core code to libgit.a 2012-10-29 03:08:30 -04:00
send-pack.h
sequencer.c Merge branch 'jc/same-encoding' 2012-11-15 10:24:05 -08:00
sequencer.h Merge branch 'jc/make-static' 2012-09-18 14:37:46 -07:00
server-info.c
setup.c Merge branch 'maint-1.7.11' into maint 2012-09-10 15:31:06 -07:00
sh-i18n--envsubst.c
sha1_file.c sha1_file.c: introduce get_max_fd_limit() helper 2012-08-24 09:46:01 -07:00
sha1_name.c Merge branch 'jc/sha1-name-more' 2012-07-22 12:55:07 -07:00
sha1-array.c sha1-array.c: mark a private file-scope symbol as static 2012-09-15 22:58:21 -07:00
sha1-array.h sha1-array.c: mark a private file-scope symbol as static 2012-09-15 22:58:21 -07:00
sha1-lookup.c
sha1-lookup.h
shallow.c
shell.c
shortlog.h
show-index.c i18n: add infrastructure for translating Git with gettext 2011-12-05 20:46:55 -08:00
sideband.c
sideband.h recv_sideband: Bands #2 and #3 always go to stderr 2009-03-10 23:23:02 -07:00
sigchain.c
sigchain.h
strbuf.c strbuf_split*(): rename "delim" parameter to "terminator" 2012-11-04 06:46:55 -05:00
strbuf.h strbuf_split*(): document functions 2012-11-04 06:46:55 -05:00
streaming.c pack-objects, streaming: turn "xx >= big_file_threshold" to ".. > .." 2012-05-18 14:21:19 -07:00
streaming.h
string-list.c string_list: add a function string_list_remove_empty_items() 2012-11-08 11:34:08 -05:00
string-list.h string_list: add a function string_list_remove_empty_items() 2012-11-08 11:34:08 -05:00
submodule.c Merge branch 'jl/submodule-rm' 2012-10-29 04:12:07 -04:00
submodule.h Merge branch 'jl/submodule-rm' 2012-10-29 04:12:07 -04:00
symlinks.c symlinks.c: mark private file-scope symbols as static 2012-09-15 22:58:21 -07:00
tag.c upload-pack: avoid parsing tag destinations 2012-01-06 13:28:57 -08:00
tag.h upload-pack: avoid parsing tag destinations 2012-01-06 13:28:57 -08:00
tar.h
test-chmtime.c
test-ctype.c
test-date.c i18n: mark relative dates for translation 2012-04-24 14:55:48 -07:00
test-delta.c
test-dump-cache-tree.c cache-tree: update API to take abitrary flags 2012-02-07 16:35:43 -08:00
test-genrandom.c test-genrandom: ensure stdout is set to _O_BINARY on Windows 2009-09-21 00:36:12 -07:00
test-index-version.c
test-line-buffer.c vcs-svn: drop no-op reset methods 2012-07-05 23:26:51 -05:00
test-match-trees.c
test-mergesort.c
test-mktemp.c
test-parse-options.c
test-path-utils.c
test-regex.c test-regex: Add a test to check for a bug in the regex routines 2012-09-02 18:57:21 -07:00
test-revision-walking.c
test-run-command.c
test-scrap-cache-tree.c
test-sha1.c Convert existing die(..., strerror(errno)) to die_errno() 2009-06-27 11:14:53 -07:00
test-sha1.sh
test-sigchain.c t0005: use SIGTERM for sigchain test 2009-01-30 01:14:26 -08:00
test-string-list.c test-string-list.c: Fix some sparse warnings 2012-09-15 23:33:58 -07:00
test-subprocess.c
test-svn-fe.c remote-svn: add incremental import 2012-10-07 14:10:17 -07:00
thread-utils.c
thread-utils.h
trace.c trace.c: mark a private file-scope symbol as static 2012-09-15 22:58:21 -07:00
transport-helper.c When debug==1, start fast-import with "--stats" instead of "--quiet" 2012-10-07 14:10:17 -07:00
transport.c filter_refs(): delete matched refs from sought list 2012-09-12 11:46:31 -07:00
transport.h send-pack: move core code to libgit.a 2012-10-29 03:08:30 -04:00
tree-diff.c Merge branch 'tr/void-diff-setup-done' into maint-1.7.11 2012-09-11 10:53:40 -07:00
tree-walk.c tree_entry_interesting: do basedir compare on wildcard patterns when possible 2012-11-26 11:16:34 -08:00
tree-walk.h tree_entry_interesting(): give meaningful names to return values 2011-10-27 11:38:24 -07:00
tree.c Strip namelen out of ce_flags into a ce_namelen field 2012-07-11 09:42:45 -07:00
tree.h
unimplemented.sh
unix-socket.c
unix-socket.h
unpack-trees.c Merge branch 'tg/ce-namelen-field' 2012-07-23 20:55:21 -07:00
unpack-trees.h unpack-trees.c: use path_excluded() in check_ok_to_remove() 2012-06-05 22:21:42 -07:00
upload-pack.c upload-pack: use peel_ref for ref advertisements 2012-10-04 20:34:29 -07:00
url.c Merge branch 'jk/http-auth' 2011-10-17 21:37:15 -07:00
url.h
usage.c
userdiff.c Add userdiff patterns for Ada 2012-09-16 21:54:47 -07:00
userdiff.h
utf8.c Merge branch 'jc/same-encoding' 2012-11-15 10:24:05 -08:00
utf8.h reencode_string(): introduce and use same_encoding() 2012-11-04 08:10:33 -05:00
varint.c
varint.h varint: make it available outside the context of pack 2012-04-03 16:24:44 -07:00
version.c include agent identifier in capability string 2012-08-03 13:03:34 -07:00
version.h include agent identifier in capability string 2012-08-03 13:03:34 -07:00
walker.c
walker.h http: init and cleanup separately from http-walker 2010-03-02 11:10:36 -08:00
wrap-for-bin.sh
wrapper.c warn_on_inaccessible(): a helper to warn on inaccessible paths 2012-08-21 14:52:07 -07:00
write_or_die.c maybe_flush_or_die: move a too-loose Windows specific error 2012-10-17 00:33:42 -07:00
ws.c
wt-status.c wt-status.c: mark a private file-scope symbol as static 2012-09-15 22:58:21 -07:00
wt-status.h wt-status.c: mark a private file-scope symbol as static 2012-09-15 22:58:21 -07:00
xdiff-interface.c
xdiff-interface.h xdiff: remove emit_func() and xdi_diff_hunks() 2012-05-09 14:08:42 -07:00
zlib.c

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

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

Many Git online resources are accessible from http://git-scm.com/
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 (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://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.