Git with broken hash generation to generate collisions between object IDs. Don't use this! https://undefinedbehavior.de/posts/commit-vandalism/
Go to file
Jeff King 1eb10f4091 unix-socket: handle long socket pathnames
On many systems, the sockaddr_un.sun_path field is quite
small. Even on Linux, it is only 108 characters. A user of
the credential-cache daemon can easily surpass this,
especially if their home directory is in a deep directory
tree (since the default location expands ~/.git-credentials).

We can hack around this in the unix-socket.[ch] code by
doing a chdir() to the enclosing directory, feeding the
relative basename to the socket functions, and then
restoring the working directory.

This introduces several new possible error cases for
creating a socket, including an irrecoverable one in the
case that we can't restore the working directory. In the
case of the credential-cache code, we could perhaps get away
with simply chdir()-ing to the socket directory and never
coming back. However, I'd rather do it at the lower level
for a few reasons:

  1. It keeps the hackery behind an opaque interface instead
     of polluting the main program logic.

  2. A hack in credential-cache won't help any unix-socket
     users who come along later.

  3. The chdir trickery isn't that likely to fail (basically
     it's only a problem if your cwd is missing or goes away
     while you're running).  And because we only enable the
     hack when we get a too-long name, it can only fail in
     cases that would have failed under the previous code
     anyway.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2012-01-10 10:10:36 -08:00
block-sha1 msvc: Select the "fast" definition of the {get,put}_be32() macros 2010-06-27 21:59:32 -07:00
builtin revert: remove --reset compatibility option 2011-11-22 18:18:02 -08:00
compat Revert "upload-archive: use start_command instead of fork" 2011-11-15 15:39:33 -08:00
contrib Merge branch 'sn/complete-bash-wo-process-subst' 2011-11-09 05:46:39 -08:00
Documentation credentials: add "store" helper 2011-12-12 16:09:38 -08:00
git_remote_helpers Change check_ref_format() to take a flags argument 2011-10-05 13:45:29 -07:00
git-gui Merge git://repo.or.cz/git-gui 2011-10-16 03:01:44 -07:00
gitk-git Merge git://git.kernel.org/pub/scm/gitk/gitk 2011-04-11 09:33:06 -07:00
gitweb Merge branch 'jm/maint-gitweb-filter-forks-fix' into maint 2011-11-08 16:26:50 -08:00
mergetools mergetools: use the correct tool for Beyond Compare 3 on Windows 2011-10-15 20:13:55 -07:00
perl libperl-git: refactor Git::config_* 2011-10-18 12:00:33 -07:00
po git-gui: updated translator README for current procedures. 2011-07-11 11:26:46 +01:00
ppc
t t: add test harness for external credential helpers 2011-12-12 16:09:38 -08:00
templates Merge branch 'maint-1.7.6' into maint 2011-10-26 16:09:28 -07:00
vcs-svn Merge branch 'rj/sparse' 2011-04-27 11:36:42 -07:00
xdiff Merge branch 'rs/diff-cleanup-records-fix' into maint 2011-10-21 10:49:25 -07:00
.gitattributes .gitattributes: detect 8-space indent in shell scripts 2010-01-06 12:22:25 -08:00
.gitignore credentials: add "store" helper 2011-12-12 16:09:38 -08:00
.mailmap Martin Langhoff has a new e-mail address 2010-10-06 12:08:48 -07:00
abspath.c Merge branch 'js/maint-add-path-stat-pwd' into maint 2011-08-16 11:41:27 -07:00
aclocal.m4 configure: use AC_LANG_PROGRAM consistently 2011-02-14 10:55:15 -08:00
advice.c advice: Introduce error_resolve_conflict 2011-08-04 15:40:41 -07:00
advice.h advice: Introduce error_resolve_conflict 2011-08-04 15:40:41 -07:00
alias.c split_cmdline: Allow caller to access error string 2010-08-11 09:36:23 -07:00
alloc.c unbreak and eliminate NO_C99_FORMAT 2011-03-17 15:30:49 -07:00
archive-tar.c upload-archive: allow user to turn off filters 2011-06-22 11:12:35 -07:00
archive-zip.c Merge branch 'jk/archive-tar-filter' 2011-07-19 09:45:32 -07:00
archive.c archive.c: use OPT_BOOL() 2011-09-27 17:00:06 -07:00
archive.h upload-archive: allow user to turn off filters 2011-06-22 11:12:35 -07:00
argv-array.c refactor argv_array into generic code 2011-09-14 11:56:36 -07:00
argv-array.h refactor argv_array into generic code 2011-09-14 11:56:36 -07:00
attr.c attr.c: respect core.ignorecase when matching attribute patterns 2011-10-11 09:43:05 -07:00
attr.h Rename git_checkattr() to git_check_attr() 2011-08-04 15:53:21 -07:00
base85.c Standardize do { ... } while (0) style 2010-08-12 15:44:51 -07:00
bisect.c Merge branch 'jk/argv-array' into maint 2011-10-26 16:13:31 -07:00
bisect.h bisect: introduce support for --no-checkout option. 2011-08-04 15:34:32 -07: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 revert: write REVERT_HEAD pseudoref during conflicted revert 2011-11-22 13:34:44 -08:00
branch.h branch --set-upstream: regression fix 2011-09-16 21:47:47 -07:00
builtin.h Revert clock-skew based attempt to optimize tag --contains traversal 2011-07-14 11:02:06 -07:00
bundle.c Merge branch 'jc/unseekable-bundle' 2011-10-21 16:04:32 -07:00
bundle.h Merge branch 'jc/unseekable-bundle' 2011-10-21 16:04:32 -07:00
cache-tree.c cache_tree_free: Fix small memory leak 2010-09-06 17:32:28 -07:00
cache-tree.h
cache.h Merge branch 'jk/maint-pack-objects-compete-with-delete' 2011-10-21 16:04:33 -07:00
check_bindir
check-builtins.sh
check-racy.c
color.c want_color: automatically fallback to color.ui 2011-08-19 15:51:38 -07:00
color.h want_color: automatically fallback to color.ui 2011-08-19 15:51:38 -07:00
combine-diff.c Merge branch 'jk/color-and-pager' 2011-08-28 21:19:16 -07:00
command-list.txt Documentation: Link to gitweb(1) and gitweb.conf(5) in other manpages 2011-10-16 11:09:35 -07:00
commit.c Merge branch 'nd/maint-autofix-tag-in-head' into maint 2011-10-21 10:49:26 -07:00
commit.h Merge branch 'rs/pending' 2011-10-13 19:03:22 -07:00
config.c config.c: Fix a static buffer overwrite bug by avoiding mkpath() 2011-11-20 19:32:09 -08:00
config.mak.in Merge branch 'kk/maint-prefix-in-config-mak' into maint 2011-06-01 14:02:39 -07:00
configure.ac configure: Check for libpcre 2011-05-09 16:29:46 -07:00
connect.c Change check_ref_format() to take a flags argument 2011-10-05 13:45:29 -07:00
connected.c check_everything_connected(): libify 2011-09-09 15:19:02 -07:00
connected.h check_everything_connected(): libify 2011-09-09 15:19:02 -07:00
convert.c convert.c: Fix return type of git_path_check_eol() 2011-11-21 11:00:57 -08:00
convert.h stream filter: add "no more input" to the filters 2011-05-26 16:47:15 -07:00
copy.c
COPYING Update COPYING with GPLv2 with new FSF address 2010-01-17 14:29:37 -08:00
credential-cache--daemon.c credentials: add "cache" helper 2011-12-11 23:16:25 -08:00
credential-cache.c credentials: unable to connect to cache daemon 2012-01-08 14:38:25 -08:00
credential-store.c credentials: add "store" helper 2011-12-12 16:09:38 -08:00
credential.c credential: make relevance of http path configurable 2011-12-11 23:16:25 -08:00
credential.h credential: make relevance of http path configurable 2011-12-11 23:16:25 -08:00
csum-file.c Merge branch 'jc/index-pack' 2011-07-19 09:54:51 -07:00
csum-file.h index-pack: --verify 2011-02-27 23:29:03 -08:00
ctype.c magic pathspec: futureproof shorthand form 2011-04-08 16:19:48 -07:00
daemon.c Merge branch 'jk/daemon-msgs' 2011-10-21 16:04:32 -07:00
date.c date.c: Support iso8601 timezone formats 2011-09-12 16:49:14 -07:00
decorate.c
decorate.h
delta.h
diff-delta.c fix >4GiB source delta assertion failure 2010-08-21 23:53:26 -07:00
diff-lib.c Merge branch 'cn/eradicate-working-copy' into maint 2011-10-26 16:13:31 -07:00
diff-no-index.c Convert struct diff_options to use struct pathspec 2011-02-03 12:28:15 -08:00
diff.c Merge branch 'jc/maint-diffstat-numstat-context' into maint 2011-11-01 16:10:56 -07:00
diff.h diff: add option to show whole functions as context 2011-10-10 12:05:07 -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 pickaxe: factor out pickaxe 2011-10-07 15:46:14 -07:00
diffcore-rename.c diffcore-rename.c: avoid set-but-not-used warning 2011-06-01 13:54:17 -07:00
diffcore.h combine-diff: support format_callback 2011-08-20 23:03:06 -07:00
dir.c rename pathspec_prefix() to common_prefix() and move to dir.[ch] 2011-09-12 14:38:32 -07:00
dir.h rename pathspec_prefix() to common_prefix() and move to dir.[ch] 2011-09-12 14:38:32 -07:00
editor.c editor: use run_command's shell feature 2010-01-05 23:41:51 -08:00
entry.c Add streaming filter API 2011-05-26 16:47:15 -07:00
environment.c Merge branch 'bc/attr-ignore-case' 2011-10-17 21:37:14 -07:00
exec_cmd.c Name make_*_path functions more accurately 2011-03-17 16:08:30 -07:00
exec_cmd.h
fast-import.c Merge branch 'di/fast-import-empty-tag-note-fix' 2011-10-13 19:03:19 -07:00
fetch-pack.h standardize brace placement in struct definitions 2011-03-16 12:49:02 -07:00
fixup-builtins
fsck.c fsck: improve committer/author check 2011-08-11 12:21:07 -07:00
fsck.h Check the format of more printf-type functions 2009-11-15 18:24:58 -08:00
generate-cmdlist.sh misc-sh: fix up whitespace in some other .sh files. 2011-08-05 15:04:48 -07:00
gettext.c i18n: do not poison translations unless GIT_GETTEXT_POISON envvar is set 2011-03-08 12:10:03 -08:00
gettext.h i18n: avoid parenthesized string as array initializer 2011-04-11 10:33:51 -07:00
git-add--interactive.perl add -i: ignore terminal escape sequences 2011-05-17 20:44:17 -07:00
git-am.sh Merge branch 'gb/am-hg-patch' 2011-10-05 12:36:17 -07:00
git-archimport.perl perl: use "use warnings" instead of -w 2010-09-27 12:37:56 -07:00
git-bisect.sh Merge branch 'js/bisect-no-checkout' into maint 2011-11-01 16:03:35 -07:00
git-compat-util.h credentials: add "cache" helper 2011-12-11 23:16:25 -08:00
git-cvsexportcommit.perl perl: use "use warnings" instead of -w 2010-09-27 12:37:56 -07:00
git-cvsimport.perl Merge branch 'gr/cvsimport-alternative-cvspass-location' into maint 2011-05-13 10:44:54 -07:00
git-cvsserver.perl use -h for synopsis and --help for manpage consistently 2011-10-05 10:47:10 -07:00
git-difftool--helper.sh git-difftool: allow skipping file by typing 'n' at prompt 2011-10-10 10:21:11 -07:00
git-difftool.perl use -h for synopsis and --help for manpage consistently 2011-10-05 10:47:10 -07:00
git-filter-branch.sh Merge branch 'jk/filter-branch-require-clean-work-tree' into maint 2011-10-15 20:46:38 -07:00
git-instaweb.sh git-instaweb: Check that correct config file exists for (re)start 2011-06-27 09:11:41 +00:00
git-lost-found.sh
git-merge-octopus.sh merge-octopus: Work around environment issue on Windows 2010-10-01 23:08:46 +01:00
git-merge-one-file.sh Merge branch 'js/maint-merge-one-file-osx-expr' into maint 2011-10-21 10:49:25 -07:00
git-merge-resolve.sh
git-mergetool--lib.sh Merge branch 'maint' 2011-09-19 20:46:48 -07:00
git-mergetool.sh Merge branch 'jm/mergetool-pathspec' into maint-1.7.6 2011-10-26 16:12:25 -07:00
git-parse-remote.sh Merge branch 'mz/rebase' 2011-04-28 14:11:39 -07:00
git-pull.sh Merge branch 'jk/pull-rebase-with-work-tree' into maint 2011-11-01 16:11:00 -07:00
git-quiltimport.sh
git-rebase--am.sh git-rebase--am: remove unnecessary --3way option 2011-02-10 14:08:10 -08:00
git-rebase--interactive.sh "rebase -i": support special-purpose editor to edit insn sheet 2011-10-17 14:40:07 -07:00
git-rebase--merge.sh rebase -m: don't print exit code 2 when merge fails 2011-02-10 14:08:09 -08:00
git-rebase.sh Merge branch 'jk/pull-rebase-with-work-tree' into maint 2011-11-01 16:11:00 -07: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 (short) documentation for the testgit remote helper 2011-09-01 15:52:02 -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: open-code the only invocation of get_remote_url 2011-03-02 12:26:58 -08:00
git-send-email.perl Merge branch 'md/smtp-tls-hello-again' into maint 2011-11-01 16:12:19 -07:00
git-sh-i18n.sh gettext: add gettextln, eval_gettextln to encode common idiom 2011-08-08 12:02:16 -07:00
git-sh-setup.sh use -h for synopsis and --help for manpage consistently 2011-10-05 10:47:10 -07:00
git-stash.sh Merge branch 'bc/unstash-clean-crufts' 2011-10-05 12:36:17 -07:00
git-submodule.sh Merge branch 'tc/submodule-clone-name-detection' 2011-10-26 16:16:32 -07:00
git-svn.perl svn: Quote repository root in regex match 2011-11-01 20:05:33 +00:00
GIT-VERSION-GEN Git 1.7.7.4 2011-11-18 11:28:05 -08:00
git-web--browse.sh git-web--browse: avoid the use of eval 2011-10-03 10:47:07 -07:00
git.c Merge branch 'jk/pager-with-external-command' 2011-08-28 21:19:25 -07:00
git.spec.in gitweb: Add gitweb manpages to 'gitweb' package in git.spec 2011-10-16 11:09:35 -07:00
graph.c color: delay auto-color decision until point of use 2011-08-19 15:51:34 -07:00
graph.h Enable custom schemes for column colors in the graph API 2010-07-13 16:33:02 -07:00
grep.c Merge branch 'fk/use-kwset-pickaxe-grep-f' 2011-09-02 10:00:38 -07:00
grep.h Use kwset in grep 2011-08-20 22:33:58 -07:00
hash.c for_each_hash: allow passing a 'void *data' pointer to callback 2011-02-18 22:25:51 -08:00
hash.h for_each_hash: allow passing a 'void *data' pointer to callback 2011-02-18 22:25:51 -08:00
help.c Merge branch 'ms/help-unknown' 2011-07-22 14:43:21 -07:00
help.h builtin.h: Move two functions definitions to help.h. 2010-09-01 08:00:51 -07:00
hex.c get_sha1_hex(): do not read past a NUL character 2011-10-05 13:45:16 -07:00
http-backend.c zlib: zlib can only process 4GB at a time 2011-06-10 11:52:15 -07:00
http-fetch.c Merge branch 'jk/http-auth' 2011-10-17 21:37:15 -07:00
http-push.c Merge branch 'jc/match-refs-clarify' 2011-10-21 16:04:35 -07:00
http-walker.c http: make curl callbacks match contracts from curl header 2011-05-04 13:30:28 -07:00
http.c http: use credential API to get passwords 2011-12-11 23:16:24 -08:00
http.h http_init: accept separate URL parameter 2011-10-15 21:18:36 -07:00
ident.c ident: do not retrieve default ident when unnecessary 2011-10-06 11:16:16 -07:00
imap-send.c sparse: Fix some "Using plain integer as NULL pointer" warnings 2011-04-11 10:35:25 -07:00
INSTALL docs: Update install-doc-quick 2011-11-08 13:37:10 -08: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 Typofixes outside documentation area 2010-02-03 21:28:17 -08:00
LGPL-2.1 provide a copy of the LGPLv2.1 2011-05-19 18:23:17 -07:00
list-objects.c list-objects: pass callback data to show_objects() 2011-09-01 15:46:12 -07:00
list-objects.h list-objects: pass callback data to show_objects() 2011-09-01 15:46:12 -07:00
ll-merge.c Rename git_checkattr() to git_check_attr() 2011-08-04 15:53:21 -07:00
ll-merge.h merge-recursive --patience 2010-08-26 09:20:03 -07:00
lockfile.c Name make_*_path functions more accurately 2011-03-17 16:08:30 -07:00
log-tree.c Merge branch 'js/log-show-children' 2011-10-18 21:59:12 -07:00
log-tree.h Allow customizable commit decorations colors 2010-06-24 12:57:34 -07:00
mailmap.c Merge branch 'ml/mailmap' into maint 2011-11-18 11:14:00 -08:00
mailmap.h mailmap.c: remove unused function 2010-01-12 01:06:09 -08:00
Makefile credentials: add "store" helper 2011-12-12 16:09:38 -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 sparse: Fix an "symbol 'merge_file' not decared" warning 2011-04-11 10:35:25 -07:00
merge-file.h sparse: Fix an "symbol 'merge_file' not decared" warning 2011-04-11 10:35:25 -07:00
merge-recursive.c Merge branch 'cn/eradicate-working-copy' into maint 2011-10-26 16:13:31 -07:00
merge-recursive.h merge-recursive: Save D/F conflict filenames instead of unlinking them 2011-08-14 14:19:35 -07:00
name-hash.c name-hash.c: always initialize dir_next pointer 2011-11-01 15:29:18 -07:00
notes-cache.c notes.h/c: Propagate combine_notes_fn return value to add_note() and beyond 2010-11-17 13:21:02 -08:00
notes-cache.h introduce notes-cache interface 2010-04-01 23:58:30 -07:00
notes-merge.c Sync with 1.7.7.4 2011-11-18 11:30:02 -08:00
notes-merge.h git notes merge: Add another auto-resolving strategy: "cat_sort_uniq" 2010-11-17 13:22:53 -08:00
notes.c Do not use C++-style comments 2011-08-22 10:07:07 -07:00
notes.h notes: refactor display notes default handling 2011-03-29 14:31:59 -07:00
object.c read_sha1_file(): get rid of read_sha1_file_repl() madness 2011-05-15 15:23:33 -07:00
object.h object.h: Remove obsolete struct object_refs 2011-03-14 10:49:28 -07:00
pack-check.c zlib: zlib can only process 4GB at a time 2011-06-10 11:52:15 -07:00
pack-refs.c Change check_ref_format() to take a flags argument 2011-10-05 13:45:29 -07:00
pack-refs.h
pack-revindex.c
pack-revindex.h
pack-write.c index-pack --verify: read anomalous offsets from v2 idx file 2011-02-27 23:29:03 -08:00
pack.h index-pack --verify: read anomalous offsets from v2 idx file 2011-02-27 23:29:03 -08:00
pager.c setup_pager: set GIT_PAGER_IN_USE 2011-08-18 14:17:12 -07:00
parse-options-cb.c parseopt: add OPT_NOOP_NOARG 2011-09-28 12:46:21 -07:00
parse-options.c parse-options: deprecate OPT_BOOLEAN 2011-09-27 17:00:04 -07:00
parse-options.h parseopt: add OPT_NOOP_NOARG 2011-09-28 12:46:21 -07:00
patch-delta.c compat: helper for detecting unsigned overflow 2011-02-10 13:47:56 -08:00
patch-ids.c
patch-ids.h
path.c Learn to handle gitfiles in enter_repo 2011-10-04 13:30:38 -07:00
pkt-line.c sparse: Fix errors and silence warnings 2011-04-03 10:14:53 -07:00
pkt-line.h
preload-index.c Convert ce_path_match() to use struct pathspec 2011-02-03 14:08:30 -08:00
pretty.c Merge branch 'nd/pretty-commit-log-message' 2011-11-01 15:20:03 -07:00
progress.c
progress.h
quote.c Merge branch 'jk/argv-array' into maint 2011-10-26 16:13:31 -07:00
quote.h quote: provide sq_dequote_to_argv_array 2011-09-14 11:56:49 -07:00
reachable.c Remove unused variables 2011-03-22 11:43:27 -07:00
reachable.h
read-cache.c read-cache.c: fix index memory allocation 2011-10-26 14:35:16 -07:00
README
reflog-walk.c Merge branch 'jk/maint-reflog-bottom' into maint 2010-12-14 07:35:50 -08:00
reflog-walk.h
refs.c refs: loosen over-strict "format" check 2011-11-16 21:52:24 -08:00
refs.h Merge branch 'jc/broken-ref-dwim-fix' 2011-10-21 16:04:36 -07:00
RelNotes Git 1.7.7.4 2011-11-18 11:28:05 -08:00
remote-curl.c Merge branch 'sp/smart-http-failure' into maint 2011-11-01 15:45:16 -07:00
remote.c Merge branch 'cn/fetch-prune' 2011-10-26 16:16:29 -07:00
remote.h Merge branch 'cn/fetch-prune' 2011-10-26 16:16:29 -07:00
replace_object.c inline lookup_replace_object() calls 2011-05-15 15:23:33 -07:00
rerere.c Merge branch 'maint' 2011-05-30 00:09:55 -07:00
rerere.h rerere: libify rerere_clear() and rerere_gc() 2011-05-08 12:55:34 -07: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 'nd/maint-autofix-tag-in-head' into maint 2011-10-21 10:49:26 -07:00
revision.h Merge branch 'bk/ancestry-path' into maint 2011-10-15 20:46:38 -07:00
run-command.c Merge branch 'jk/argv-array' into maint 2011-10-26 16:13:31 -07:00
run-command.h Enable threaded async procedures whenever pthreads is available 2010-03-10 14:26:54 -08:00
send-pack.h push: pass --progress down to git-pack-objects 2010-10-18 16:20:19 -07:00
sequencer.c revert: Introduce --reset to remove sequencer state 2011-08-04 15:41:21 -07:00
sequencer.h revert: rename --reset option to --quit 2011-11-22 13:30:35 -08:00
server-info.c update-server-info: Shorten read_pack_info_file() 2010-07-19 11:13:52 -07:00
setup.c Merge branch 'cb/common-prefix-unification' 2011-10-10 15:56:17 -07:00
sh-i18n--envsubst.c Merge branch 'js/i18n-windows' 2011-06-29 17:03:13 -07:00
sha1_file.c sha1_file: don't mix enum with int 2011-11-15 16:09:20 -08:00
sha1_name.c Merge branch 'jc/broken-ref-dwim-fix' 2011-10-21 16:04:36 -07:00
sha1-array.c receive-pack: eliminate duplicate .have refs 2011-05-19 20:02:31 -07:00
sha1-array.h receive-pack: eliminate duplicate .have refs 2011-05-19 20:02:31 -07:00
sha1-lookup.c
sha1-lookup.h
shallow.c object.h: Add OBJECT_ARRAY_INIT macro and make use of it. 2010-08-29 22:42:49 -07:00
shell.c shell: add missing initialization of argv0_path 2011-05-05 09:32:28 -07:00
shortlog.h pretty: Respect --abbrev option 2010-05-04 15:38:58 -07:00
show-index.c cleanup: use internal memory allocation wrapper functions everywhere 2011-10-06 13:54:32 -07:00
sideband.c
sideband.h
sigchain.c
sigchain.h
strbuf.c strbuf: add strbuf_add*_urlencode 2011-12-12 16:08:27 -08:00
strbuf.h strbuf: add strbuf_add*_urlencode 2011-12-12 16:08:27 -08:00
streaming.c Merge branch 'jc/streaming-filter' 2011-08-01 15:00:29 -07:00
streaming.h Add streaming filter API 2011-05-26 16:47:15 -07:00
string-list.c string-list: Add API to remove an item from an unsorted list 2011-08-14 14:19:35 -07:00
string-list.h string-list: Add API to remove an item from an unsorted list 2011-08-14 14:19:35 -07:00
submodule.c Merge branch 'jk/argv-array' into maint 2011-10-26 16:13:31 -07:00
submodule.h submodule: Search for merges only at end of recursive merge 2011-10-13 10:18:16 -07:00
symlinks.c do not overwrite untracked symlinks 2011-02-21 22:51:07 -08:00
tag.c parse_tag_buffer(): do not prefixcmp() out of range 2011-02-16 10:05:14 -08:00
tag.h Add const to parse_{commit,tag}_buffer() 2011-02-07 15:04:42 -08:00
tar.h
test-chmtime.c Typofixes outside documentation area 2010-02-03 21:28:17 -08:00
test-credential.c introduce credentials API 2011-12-11 23:16:24 -08:00
test-ctype.c test-ctype: add test for is_pathspec_magic 2011-10-03 11:44:03 -07:00
test-date.c test-date: fix sscanf type conversion 2010-07-06 08:42:15 -07:00
test-delta.c
test-dump-cache-tree.c
test-genrandom.c
test-index-version.c
test-line-buffer.c vcs-svn: remove buffer_read_string 2011-03-26 00:17:35 -05:00
test-match-trees.c
test-mktemp.c Improve error messages when temporary file creation fails 2010-12-21 19:51:17 -08:00
test-obj-pool.c Add memory pool library 2010-08-14 19:35:37 -07:00
test-parse-options.c parseopt: add OPT_NOOP_NOARG 2011-09-28 12:46:21 -07:00
test-path-utils.c test-path-utils: Add subcommand "prefix_path" 2011-08-04 15:57:18 -07:00
test-run-command.c tests: check error message from run_command 2011-04-20 10:08:54 -07:00
test-sha1.c
test-sha1.sh
test-sigchain.c
test-string-pool.c Add string-specific memory pool 2010-08-14 19:35:37 -07:00
test-subprocess.c Remove unused variables 2011-03-22 11:43:27 -07:00
test-svn-fe.c vcs-svn: Check for errors from open() 2010-11-24 14:51:42 -08:00
test-treap.c treap: make treap_insert return inserted node 2010-12-07 16:03:55 -08:00
thread-utils.c Fix sparse warnings 2011-03-22 10:16:54 -07:00
thread-utils.h thread-utils.h: simplify the inclusion 2010-12-10 12:58:06 -08:00
trace.c Fix sparse warnings 2011-03-22 10:16:54 -07:00
transport-helper.c cleanup: use internal memory allocation wrapper functions everywhere 2011-10-06 13:54:32 -07:00
transport.c Merge branch 'jc/match-refs-clarify' 2011-10-21 16:04:35 -07:00
transport.h push: Don't push a repository with unpushed submodules 2011-08-20 23:03:52 -07:00
tree-diff.c Merge branch 'jk/diff-not-so-quick' 2011-06-06 11:40:14 -07:00
tree-walk.c Merge branch 'dm/tree-walk' 2011-10-10 15:56:20 -07:00
tree-walk.h traverse_trees(): allow pruning with pathspec 2011-08-29 14:32:04 -07:00
tree.c Convert read_tree{,_recursive} to support struct pathspec 2011-03-25 09:20:33 -07:00
tree.h Convert read_tree{,_recursive} to support struct pathspec 2011-03-25 09:20:33 -07:00
unimplemented.sh
unix-socket.c unix-socket: handle long socket pathnames 2012-01-10 10:10:36 -08:00
unix-socket.h credentials: add "cache" helper 2011-12-11 23:16:25 -08:00
unpack-trees.c Merge branch 'maint-1.7.6' into maint 2011-10-26 16:09:28 -07:00
unpack-trees.h Merge branch 'jc/diff-index-unpack' into maint 2011-10-15 20:46:36 -07:00
upload-pack.c Merge branch 'jc/fetch-verify' 2011-10-05 12:36:20 -07:00
url.c Merge branch 'jk/http-auth' 2011-10-17 21:37:15 -07:00
url.h url: decode buffers that are not NUL-terminated 2011-07-20 11:38:34 -07:00
usage.c error_routine: use parent's stderr if exec fails 2011-07-31 18:27:07 -07:00
userdiff.c Merge branch 'jk/combine-diff-binary-etc' into maint 2011-08-16 11:23:24 -07:00
userdiff.h refactor get_textconv to not require diff_filespec 2011-05-23 15:46:02 -07:00
utf8.c strbuf: add fixed-length version of add_wrapped_text 2011-02-23 13:44:36 -08:00
utf8.h strbuf: add fixed-length version of add_wrapped_text 2011-02-23 13:44:36 -08:00
walker.c Change check_ref_format() to take a flags argument 2011-10-05 13:45:29 -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 read_in_full: always report errors 2011-05-26 13:54:18 -07:00
write_or_die.c
ws.c Rename git_checkattr() to git_check_attr() 2011-08-04 15:53:21 -07:00
wt-status.c Merge branch 'maint-1.7.5' into maint-1.7.6 2011-10-26 16:08:19 -07:00
wt-status.h Merge branch 'jn/status-translatable' 2011-03-19 23:24:19 -07:00
xdiff-interface.c add, merge, diff: do not use strcasecmp to compare config variable names 2011-05-14 18:53:39 -07:00
xdiff-interface.h Merge branch 'maint-1.7.0' into maint 2010-05-04 15:20:47 -07:00
zlib.c zlib: allow feeding more than 4GB in one go 2011-06-10 16:17:19 -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.