Git with broken hash generation to generate collisions between object IDs. Don't use this! https://undefinedbehavior.de/posts/commit-vandalism/
Go to file
Jonathan Nieder a93e530184 unpack-trees: handle lstat failure for existing file
When check_leading_path notices a file in the way of a new entry to be
checked out, verify_absent uses (1) the mode to determine whether it
is a directory (2) the rest of the stat information to check if this
is actually an old entry, disguised by a change in filename (e.g.,
README -> Readme) that is significant to git but insignificant to the
underlying filesystem.  If lstat fails, these checks are performed
with an uninitialied stat structure, producing essentially random
results.

Better to just error out when lstat fails.

The easiest way to reproduce this is to remove a file after the
check_leading_path call and before the lstat in verify_absent.  An
lstat failure other than ENOENT in check_leading_path would also
trigger the same code path.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-01-13 11:26:09 -08:00
block-sha1 msvc: Select the "fast" definition of the {get,put}_be32() macros 2010-06-27 21:59:32 -07:00
builtin commit: suggest --amend --reset-author to fix commiter identity 2011-01-12 12:43:58 -08:00
compat mingw: do not set errno to 0 on success 2010-11-23 16:08:01 -08:00
contrib Merge branch 'ab/require-perl-5.8' into maint 2010-12-09 10:35:21 -08:00
Documentation Merge branch 'maint-1.7.2' into maint 2011-01-10 10:39:28 -08:00
git_remote_helpers remote-helpers: build in platform independent directory 2010-09-27 10:42:50 -07:00
git-gui Merge git://repo.or.cz/git-gui 2010-09-15 12:34:48 -07:00
gitk-git Mark gitk script executable 2011-01-08 23:34:02 -08:00
gitweb gitweb: skip logo in atom feed when there is none 2011-01-04 10:48:37 -08:00
perl perl: bump the required Perl version to 5.8 from 5.6.[21] 2010-09-27 12:37:41 -07:00
ppc fix openssl headers conflicting with custom SHA1 implementations 2008-10-02 18:06:56 -07:00
t t9001: Fix test prerequisites 2010-12-29 13:39:05 -08:00
templates Modernize git calling conventions in hook templates 2010-03-20 09:04:38 -07:00
vcs-svn vcs-svn: Fix some printf format compiler warnings 2010-09-12 10:24:55 -07:00
xdiff Merge branch 'cb/diff-fname-optim' into maint 2010-11-24 12:46:26 -08:00
.gitattributes .gitattributes: detect 8-space indent in shell scripts 2010-01-06 12:22:25 -08:00
.gitignore Merge branch 'ab/test-2' 2010-09-04 08:15:36 -07:00
.mailmap Merge branch 'mg/mailmap-update' 2010-04-03 12:28:40 -07:00
abspath.c make_absolute_path(): Do not append redundant slash 2010-02-14 13:21:31 -08:00
aclocal.m4 Some platforms lack socklen_t type 2010-05-31 17:36:27 -07:00
advice.c Reword "detached HEAD" notification 2010-01-29 22:11:00 -08:00
advice.h Reword "detached HEAD" notification 2010-01-29 22:11:00 -08:00
alias.c split_cmdline: Allow caller to access error string 2010-08-11 09:36:23 -07:00
alloc.c Fix a bunch of pointer declarations (codestyle) 2009-05-01 15:17:31 -07:00
archive-tar.c archive-tar.c: squelch a type mismatch warning 2009-05-08 23:57:29 -07:00
archive-zip.c
archive.c Use angles for placeholders consistently 2010-10-08 12:29:52 -07:00
archive.h archive: do not read .gitattributes in working directory 2009-04-17 21:05:49 -07:00
attr.c Merge branch 'eb/core-eol' 2010-06-21 06:02:49 -07:00
attr.h enums: omit trailing comma for portability 2010-05-31 16:59:27 -07:00
base85.c Standardize do { ... } while (0) style 2010-08-12 15:44:51 -07:00
bisect.c bisect: use find_commit_subject() instead of custom code 2010-07-23 16:12:47 -07:00
bisect.h builtin-rev-list.c: mark file-local function static 2010-01-11 23:16:16 -08:00
blob.c Replace parse_blob() with an explanatory comment 2010-01-18 17:04:02 -08:00
blob.h Replace parse_blob() with an explanatory comment 2010-01-18 17:04:02 -08:00
branch.c builtin/checkout: handle -B from detached HEAD correctly 2010-08-09 12:57:17 -07:00
branch.h Make git-clone respect branch.autosetuprebase 2009-03-03 22:58:52 -08:00
builtin.h Merge branch 'ks/no-textconv-symlink' into maint 2010-12-02 11:26:24 -08:00
bundle.c bundle: detect if bundle file cannot be created 2010-08-27 16:46:26 -07:00
bundle.h
cache-tree.c cache_tree_free: Fix small memory leak 2010-09-06 17:32:28 -07:00
cache-tree.h Optimize "diff-index --cached" using cache-tree 2009-05-25 11:35:29 -07:00
cache.h do not overwrite files in leading path 2010-12-14 08:55:12 -08:00
check_bindir
check-builtins.sh
check-racy.c
color.c diff: add --word-diff option that generalizes --color-words 2010-04-14 10:56:53 -07:00
color.h diff: add --word-diff option that generalizes --color-words 2010-04-14 10:56:53 -07:00
combine-diff.c Merge branch 'rs/diff-no-minimal' into maint 2010-06-21 05:38:50 -07:00
command-list.txt Add git-http-backend to command-list. 2009-12-26 14:12:34 -08:00
commit.c Merge branch 'cc/find-commit-subject' 2010-08-18 12:46:55 -07:00
commit.h Merge branch 'cc/find-commit-subject' 2010-08-18 12:46:55 -07:00
config.c log.decorate: accept 0/1 bool values 2010-11-17 10:59:23 -08:00
config.mak.in Merge branch 'ab/compat-regex' 2010-09-03 09:43:45 -07:00
configure.ac Merge branch 'ab/compat-regex' 2010-09-03 09:43:45 -07:00
connect.c Make sure that git_getpass() never returns NULL 2010-09-30 12:22:02 -07:00
convert.c Don't expand CRLFs when normalizing text during merge 2010-07-02 15:45:18 -07:00
copy.c preserve mtime of local clone 2009-09-13 01:32:26 -07:00
COPYING Update COPYING with GPLv2 with new FSF address 2010-01-17 14:29:37 -08:00
csum-file.c Convert existing die(..., strerror(errno)) to die_errno() 2009-06-27 11:14:53 -07:00
csum-file.h Merge branch 'maint' 2008-10-10 08:39:20 -07:00
ctype.c enums: omit trailing comma for portability 2010-05-31 16:59:27 -07:00
daemon.c Use angles for placeholders consistently 2010-10-08 12:29:52 -07:00
date.c Export parse_date_basic() to convert a date string to timestamp 2010-07-15 15:35:12 -07:00
decorate.c Unify signedness in hashing calls 2009-05-20 00:02:24 -07:00
decorate.h decorate: allow const objects to be decorated 2008-08-20 13:30:49 -07:00
delta.h Fix big left-shifts of unsigned char 2009-06-18 09:22:46 -07:00
diff-delta.c fix >4GiB source delta assertion failure 2010-08-21 23:53:26 -07:00
diff-lib.c Submodules: Add the new "ignore" config option for diff and status 2010-08-09 09:01:52 -07:00
diff-no-index.c string_list: Add STRING_LIST_INIT macro and make use of it. 2010-07-05 11:47:57 -07:00
diff.c fill_textconv(): Don't get/put cache if sha1 is not valid 2010-12-19 18:41:32 -08:00
diff.h Merge branch 'mm/shortopt-detached' 2010-08-21 23:28:31 -07:00
diffcore-break.c Add a macro DIFF_QUEUE_CLEAR. 2010-05-07 09:34:27 -07:00
diffcore-delta.c Fix diff -B/--dirstat miscounting of newly added contents 2009-12-05 10:54:17 -08:00
diffcore-order.c
diffcore-pickaxe.c diffcore-pickaxe.c: remove unnecessary curly braces 2010-10-05 08:41:58 -07:00
diffcore-rename.c Add a macro DIFF_QUEUE_CLEAR. 2010-05-07 09:34:27 -07:00
diffcore.h diff --follow: do call diffcore_std() as necessary 2010-08-13 12:17:45 -07:00
dir.c dir.c: fix EXC_FLAG_MUSTBEDIR match in sparse checkout 2010-11-08 11:39:23 -08:00
dir.h git add: Add the "--ignore-missing" option for the dry run 2010-07-12 15:13:54 -07:00
editor.c editor: use run_command's shell feature 2010-01-05 23:41:51 -08:00
entry.c entry.c: remove "checkout-index" from error messages 2010-11-29 14:03:07 -08:00
environment.c setup: make sure git_dir path is in a permanent buffer, getenv(3) case 2010-11-12 16:03:27 -08:00
exec_cmd.c Merge branch 'cw/maint-exec-defpath' into maint 2010-06-16 16:33:47 -07:00
exec_cmd.h Refactor git_set_argv0_path() to git_extract_argv0_path() 2009-01-26 00:26:05 -08:00
fast-import.c Use angles for placeholders consistently 2010-10-08 12:29:52 -07:00
fetch-pack.h Smart fetch over HTTP: client side 2009-11-04 17:58:15 -08:00
fixup-builtins
fsck.c fsck: fix bogus commit header check 2010-05-28 15:08:27 -07:00
fsck.h Check the format of more printf-type functions 2009-11-15 18:24:58 -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 Merge branch 'jl/add-p-reverse-message' into maint 2010-12-09 10:36:47 -08:00
git-am.sh Merge branch 'jc/maint-rebase-rewrite-last-skip' into maint 2010-12-28 13:43:10 -08:00
git-archimport.perl perl: use "use warnings" instead of -w 2010-09-27 12:37:56 -07:00
git-bisect.sh Merge branch 'rs/work-around-grep-opt-insanity' 2009-11-25 11:45:07 -08:00
git-compat-util.h do not depend on signed integer overflow 2010-10-06 11:10:07 -07:00
git-cvsexportcommit.perl perl: use "use warnings" instead of -w 2010-09-27 12:37:56 -07:00
git-cvsimport.perl perl: use "use warnings" instead of -w 2010-09-27 12:37:56 -07:00
git-cvsserver.perl perl: bump the required Perl version to 5.8 from 5.6.[21] 2010-09-27 12:37:41 -07:00
git-difftool--helper.sh difftool: provide basename to external tools 2010-12-16 13:01:36 -08:00
git-difftool.perl perl: bump the required Perl version to 5.8 from 5.6.[21] 2010-09-27 12:37:41 -07:00
git-filter-branch.sh filter-branch: retire --remap-to-ancestor 2010-08-27 16:47:01 -07:00
git-instaweb.sh instaweb: add access+error logging for WEBrick 2010-08-05 08:51:26 +00:00
git-lost-found.sh lost-found: use git rev-parse -q 2008-12-03 14:27:17 -08:00
git-merge-octopus.sh octopus: remove dead code 2009-12-13 23:40:24 -08:00
git-merge-one-file.sh build: propagate $DIFF to scripts 2010-06-05 09:36:13 -07: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: Remove explicit references to /dev/tty 2010-08-20 14:09:04 -07:00
git-mergetool.sh Merge branch 'cb/maint-mergetool-no-tty' 2010-09-03 09:43:44 -07:00
git-parse-remote.sh Do not install shell libraries executable 2010-01-31 11:53:10 -08:00
git-pull.sh Merge branch 'en/rebase-against-rebase-fix' into maint 2010-09-01 13:43:55 -07:00
git-quiltimport.sh git-quiltimport: preserve standard input to be able to read user input 2009-02-25 00:49:13 -08:00
git-rebase--interactive.sh git-rebase--interactive.sh: replace cut with ${v%% *} 2010-09-17 14:58:08 -07:00
git-rebase.sh Merge branch 'mz/rebase-abort-reflog-fix' into maint 2010-12-14 07:35:44 -08:00
git-relink.perl Merge branch 'ab/require-perl-5.8' into maint 2010-12-09 10:35:21 -08:00
git-remote-testgit.py Remove python 2.5'isms 2010-06-13 20:02:50 -07:00
git-repack.sh Merge branch 'tr/maint-git-repack-tmpfile' into maint 2010-11-24 12:47:10 -08:00
git-request-pull.sh git-request-pull.sh: remove -e switch to shell interpreter which breaks ksh 2010-06-02 09:28:12 -07:00
git-send-email.perl Merge branch 'ab/require-perl-5.8' into maint 2010-12-09 10:35:21 -08:00
git-sh-setup.sh get_author_ident_from_commit(): remove useless quoting 2010-09-27 10:49:49 -07:00
git-stash.sh shell portability: no "export VAR=VAL" 2010-10-13 11:36:36 -07:00
git-submodule.sh submodule sync: Update "submodule.<name>.url" for empty directories 2010-10-13 18:31:45 -07:00
git-svn.perl Merge branch 'ab/require-perl-5.8' into maint 2010-12-09 10:35:21 -08:00
GIT-VERSION-GEN Git 1.7.3.5 2011-01-05 14:49:19 -08:00
git-web--browse.sh Add a google-chrome option for web--browse 2010-07-25 23:14:18 -07:00
git.c Use angles for placeholders consistently 2010-10-08 12:29:52 -07:00
git.spec.in git.spec.in: Add gitweb subpackage 2010-06-30 15:49:18 -07:00
graph.c Merge branch 'maint' 2010-08-22 20:18:37 -07:00
graph.h Enable custom schemes for column colors in the graph API 2010-07-13 16:33:02 -07:00
grep.c grep: support NUL chars in search strings for -F 2010-05-24 11:22:07 -07:00
grep.h Merge branch 'gv/portable' 2010-06-21 06:02:44 -07:00
hash.c
hash.h
help.c Remove hyphen from "git-command" in two error messages 2010-02-15 18:20:54 -08:00
help.h builtin.h: Move two functions definitions to help.h. 2010-09-01 08:00:51 -07:00
hex.c slim down "git show-index" 2010-01-21 20:03:45 -08:00
http-backend.c http-backend: use end_url_with_slash() 2010-11-26 14:50:45 -08:00
http-fetch.c http-fetch: rework url handling 2010-11-26 14:50:46 -08:00
http-push.c http-push: add trailing slash at arg-parse time, instead of later on 2010-11-26 14:50:46 -08:00
http-walker.c Merge branch 'gv/portable' 2010-06-21 06:02:44 -07:00
http.c Merge branch 'tc/http-urls-ends-with-slash' into maint 2010-12-14 07:36:10 -08:00
http.h shift end_url_with_slash() from http.[ch] to url.[ch] 2010-11-26 14:50:45 -08:00
ident.c ident: die on bogus date format 2010-12-20 10:28:19 -08:00
imap-send.c imap-send: Fix sprintf usage 2010-08-09 11:35:46 -07:00
INSTALL perl: bump the required Perl version to 5.8 from 5.6.[21] 2010-09-27 12:37:41 -07:00
levenshtein.c Fix typos / spelling in comments 2009-04-22 19:02:12 -07:00
levenshtein.h Typofixes outside documentation area 2010-02-03 21:28:17 -08:00
list-objects.c Merge branch 'lt/pack-object-memuse' 2009-04-18 14:46:17 -07:00
list-objects.h Merge branch 'lt/pack-object-memuse' 2009-04-18 14:46:17 -07:00
ll-merge.c ll-merge: let caller decide whether to renormalize 2010-08-06 09:20:01 -07:00
ll-merge.h ll-merge: let caller decide whether to renormalize 2010-08-06 09:20:01 -07:00
lockfile.c lockfile: show absolute filename in unable_to_lock_message 2010-01-12 15:48:24 -08:00
log-tree.c Allow customizable commit decorations colors 2010-06-24 12:57:34 -07:00
log-tree.h Allow customizable commit decorations colors 2010-06-24 12:57:34 -07:00
mailmap.c mailmap: fix use of freed memory 2010-10-13 19:11:26 -07:00
mailmap.h mailmap.c: remove unused function 2010-01-12 01:06:09 -08:00
Makefile Merge branch 'jc/maint-no-openssl-build-fix' into maint 2010-12-14 07:50:20 -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 branch 'rs/diff-no-minimal' into maint 2010-06-21 05:38:50 -07:00
merge-recursive.c Merge branch 'ks/recursive-rename-add-identical' 2010-09-15 12:39:12 -07:00
merge-recursive.h Merge branch 'dg/local-mod-error-messages' 2010-09-03 22:23:49 -07:00
name-hash.c
notes-cache.c introduce notes-cache interface 2010-04-01 23:58:30 -07:00
notes-cache.h introduce notes-cache interface 2010-04-01 23:58:30 -07:00
notes.c notes: Don't create (empty) commit when removing non-existing notes 2010-08-31 11:07:34 -07:00
notes.h notes: Don't create (empty) commit when removing non-existing notes 2010-08-31 11:07:34 -07:00
object.c Merge branch 'maint' 2010-09-06 00:12:04 -07:00
object.h object.h: Add OBJECT_ARRAY_INIT macro and make use of it. 2010-08-29 22:42:49 -07:00
pack-check.c Typos in code comments, an error message, documentation 2010-08-22 13:25:08 -07:00
pack-refs.c pack-refs: remove newly empty directories 2010-07-07 09:11:37 -07:00
pack-refs.h
pack-revindex.c janitor: useless checks before free 2009-07-22 21:57:41 -07:00
pack-revindex.h discard revindex data when pack list changes 2008-08-22 22:00:22 -07:00
pack-write.c move encode_in_pack_object_header() to a better place 2010-02-23 13:10:56 -08:00
pack.h Merge branch 'sp/maint-dumb-http-pack-reidx' into maint 2010-06-16 16:21:30 -07:00
pager.c Make 'git var GIT_PAGER' always print the configured pager 2010-02-14 18:23:17 -08:00
parse-options.c parseopt: wrap rev-parse --parseopt usage for eval consumption 2010-06-13 09:38:14 -07:00
parse-options.h parse-options: clarify PARSE_OPT_NOARG description 2010-08-24 10:37:39 -07:00
patch-delta.c Fix integer overflow in patch_delta() 2010-01-26 12:57:59 -08:00
patch-ids.c patch-ids: use the new generic "sha1_pos" function to lookup sha1 2009-04-04 22:57:42 -07:00
patch-ids.h
path.c Merge branch 'hv/submodule-find-ff-merge' 2010-08-21 23:27:59 -07:00
pkt-line.c pkt-line: Make packet_read_line easier to debug 2009-10-30 19:20:53 -07:00
pkt-line.h pkt-line: Add strbuf based functions 2009-10-30 19:20:53 -07:00
preload-index.c Make ce_uptodate() trustworthy again 2010-01-24 00:15:29 -08:00
pretty.c Merge branch 'mg/pretty-magic-space' 2010-06-22 09:45:22 -07:00
progress.c change throughput display units with fast links 2009-10-14 01:19:29 -07:00
progress.h
quote.c quote.c: separate quoting and relative path generation 2010-06-05 09:14:13 -07:00
quote.h quote.c: separate quoting and relative path generation 2010-06-05 09:14:13 -07:00
reachable.c object.h: Add OBJECT_ARRAY_INIT macro and make use of it. 2010-08-29 22:42:49 -07:00
reachable.h
read-cache.c core: Stop leaking ondisk_cache_entrys 2010-08-11 09:57:43 -07:00
README README: git lives at http://git-scm.com these days 2009-10-07 12:47:24 -07:00
reflog-walk.c Merge branch 'jk/maint-reflog-bottom' into maint 2010-12-14 07:35:50 -08:00
reflog-walk.h Introduce new pretty formats %g[sdD] for reflog information 2009-10-19 22:28:26 -07:00
refs.c Merge branch 'hv/submodule-find-ff-merge' 2010-08-21 23:27:59 -07:00
refs.h setup_revisions(): Allow walking history in a submodule 2010-07-07 09:48:33 -07:00
RelNotes Prepare for 1.7.3.5 2010-12-28 13:48:54 -08:00
remote-curl.c Merge branch 'sp/fix-smart-http-deadlock-on-error' into maint 2010-08-18 16:30:11 -07:00
remote.c string_list: Add STRING_LIST_INIT macro and make use of it. 2010-07-05 11:47:57 -07:00
remote.h enums: omit trailing comma for portability 2010-05-31 16:59:27 -07:00
replace_object.c environment: add global variable to disable replacement 2009-05-31 17:02:59 -07:00
rerere.c Merge branch 'jn/merge-renormalize' 2010-09-03 09:43:41 -07:00
rerere.h Merge branch 'jc/cache-unmerge' 2010-01-20 14:46:35 -08:00
resolve-undo.c Convert the users of for_each_string_list to for_each_string_list_item macro 2010-07-05 11:44:35 -07:00
resolve-undo.h build: make code "-Wpointer-arith" clean 2010-02-01 22:04:03 -08:00
revision.c Merge branch 'jk/maint-reflog-bottom' into maint 2010-12-14 07:35:50 -08:00
revision.h setup_revisions(): Allow walking history in a submodule 2010-07-07 09:48:33 -07:00
run-command.c Merge branch 'js/async-thread' 2010-06-21 06:02:45 -07:00
run-command.h Enable threaded async procedures whenever pthreads is available 2010-03-10 14:26:54 -08:00
send-pack.h git-push: make git push --porcelain print "Done" 2010-02-28 10:39:30 -08:00
server-info.c update-server-info: Shorten read_pack_info_file() 2010-07-19 11:13:52 -07:00
setup.c prefix_filename(): safely handle the case where pfx_len=0 2010-10-18 16:10:55 -07:00
sha1_file.c sha1_file: Show the the type and path to corrupt objects 2010-07-14 15:35:12 -07:00
sha1_name.c Merge branch 'ks/no-textconv-symlink' into maint 2010-12-02 11:26:24 -08:00
sha1-lookup.c sha1-lookup: fix up the assertion message 2009-04-06 00:56:27 -07:00
sha1-lookup.h sha1-lookup: add new "sha1_pos" function to efficiently lookup sha1 2009-04-04 22:57:39 -07:00
shallow.c object.h: Add OBJECT_ARRAY_INIT macro and make use of it. 2010-08-29 22:42:49 -07:00
shell.c Convert existing die(..., strerror(errno)) to die_errno() 2009-06-27 11:14:53 -07:00
shortlog.h pretty: Respect --abbrev option 2010-05-04 15:38:58 -07:00
show-index.c slim down "git show-index" 2010-01-21 20:03:45 -08:00
sideband.c Smart push over HTTP: client side 2009-11-04 17:58:15 -08:00
sideband.h recv_sideband: Bands #2 and #3 always go to stderr 2009-03-10 23:23:02 -07:00
sigchain.c refactor signal handling for cleanup functions 2009-01-21 22:46:53 -08:00
sigchain.h refactor signal handling for cleanup functions 2009-01-21 22:46:53 -08:00
strbuf.c Merge branch 'ap/merge-backend-opts' 2010-01-20 20:28:50 -08:00
strbuf.h strbuf.h: fix comment typo 2010-09-27 10:42:11 -07:00
string-list.c string_list: Fix argument order for string_list_append 2010-06-27 10:06:52 -07:00
string-list.h string_list: Add STRING_LIST_INIT macro and make use of it. 2010-07-05 11:47:57 -07:00
submodule.c Merge branch 'hv/submodule-find-ff-merge' 2010-08-21 23:27:59 -07:00
submodule.h Merge branch 'hv/submodule-find-ff-merge' 2010-08-21 23:27:59 -07:00
symlinks.c do not overwrite files in leading path 2010-12-14 08:55:12 -08:00
tag.c tag: recognize rfc1991 signatures 2010-11-10 09:40:35 -08:00
tag.h verify-tag: factor out signature detection 2010-11-10 09:39:56 -08:00
tar.h
test-chmtime.c Typofixes outside documentation area 2010-02-03 21:28:17 -08:00
test-ctype.c Add is_regex_special() 2009-01-17 18:30:41 -08:00
test-date.c test-date: fix sscanf type conversion 2010-07-06 08:42:15 -07:00
test-delta.c Nicolas Pitre has a new email address 2009-09-14 02:23:36 -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: ensure stdout is set to _O_BINARY on Windows 2009-09-21 00:36:12 -07:00
test-index-version.c Add test-index-version 2009-08-23 17:11:28 -07:00
test-line-buffer.c Add stream helper library 2010-08-14 19:35:37 -07:00
test-match-trees.c
test-obj-pool.c Add memory pool library 2010-08-14 19:35:37 -07:00
test-parse-options.c parse-opt: ignore negation of OPT_NONEG for ambiguity checks 2009-09-29 07:28:47 -07:00
test-path-utils.c Introduce the function strip_path_suffix() 2009-02-19 22:45:48 -08:00
test-run-command.c start_command: detect execvp failures early 2010-01-10 10:15:03 -08:00
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-pool.c Add string-specific memory pool 2010-08-14 19:35:37 -07:00
test-svn-fe.c SVN dump parser 2010-08-14 19:35:38 -07:00
test-treap.c Add treap implementation 2010-08-14 19:35:37 -07:00
thread-utils.c Thread-safe xmalloc and xrealloc needs a recursive mutex 2010-04-08 23:06:39 -07:00
thread-utils.h Thread-safe xmalloc and xrealloc needs a recursive mutex 2010-04-08 23:06:39 -07:00
trace.c trace.c: mark file-local function static 2010-12-17 13:40:32 -08:00
transport-helper.c string_list: Add STRING_LIST_INIT macro and make use of it. 2010-07-05 11:47:57 -07:00
transport.c make url-related functions reusable 2010-05-24 16:48:32 -07:00
transport.h Merge branch 'tc/transport-verbosity' 2010-03-15 00:58:42 -07:00
tree-diff.c diff --follow: do call diffcore_std() as necessary 2010-08-13 12:17:45 -07:00
tree-walk.c unpack_trees: group error messages by type 2010-08-11 10:36:06 -07:00
tree-walk.h Merge branch 'maint' 2010-08-26 16:42:59 -07:00
tree.c Fix off-by-one in read_tree_recursive 2009-04-20 13:44:14 -07:00
tree.h
unimplemented.sh Makefile: allow building without perl 2009-04-08 22:14:56 -07:00
unpack-trees.c unpack-trees: handle lstat failure for existing file 2011-01-13 11:26:09 -08:00
unpack-trees.h use persistent memory for rejected paths 2010-12-14 08:55:13 -08:00
upload-pack.c Use angles for placeholders consistently 2010-10-08 12:29:52 -07:00
url.c url: add str wrapper for end_url_with_slash() 2010-11-26 14:50:45 -08:00
url.h url: add str wrapper for end_url_with_slash() 2010-11-26 14:50:45 -08:00
usage.c Make report() from usage.c public as vreportf() and use it. 2010-03-07 00:37:35 -08:00
userdiff.c userdiff: fix typo in ruby and python word regexes 2010-12-18 22:58:40 -08:00
userdiff.h diff: cache textconv output 2010-04-02 00:05:31 -07:00
utf8.c Merge branch 'rs/optim-text-wrap' into maint 2010-03-04 22:26:33 -08:00
utf8.h Merge branch 'rs/optim-text-wrap' into maint 2010-03-04 22:26:33 -08:00
walker.c janitor: useless checks before free 2009-07-22 21:57:41 -07:00
walker.h http: init and cleanup separately from http-walker 2010-03-02 11:10:36 -08:00
wrap-for-bin.sh wrap-for-bin: do not export an empty GIT_TEMPLATE_DIR 2010-03-02 16:27:03 -08:00
wrapper.c xmalloc: include size in the failure message 2010-08-20 09:27:38 -07:00
write_or_die.c Convert existing die(..., strerror(errno)) to die_errno() 2009-06-27 11:14:53 -07:00
ws.c diff: handle lines containing only whitespace and tabs better 2010-10-20 16:10:15 -07:00
wt-status.c status: Quote paths with spaces in short format 2010-11-09 07:35:16 -08:00
wt-status.h Merge branch 'jl/status-ignore-submodules' 2010-06-30 11:55:39 -07:00
xdiff-interface.c Merge branch 'rs/maint-diff-fd-leak' into maint 2010-12-26 11:18:39 -08:00
xdiff-interface.h Merge branch 'maint-1.7.0' into maint 2010-05-04 15:20:47 -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
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. 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.