Go to file
Linus Torvalds dce9648916 Make the default abbrev length configurable
The default of 7 comes from fairly early in git development, when
seven hex digits was a lot (it covers about 250+ million hash
values). Back then I thought that 65k revisions was a lot (it was what
we were about to hit in BK), and each revision tends to be about 5-10
new objects or so, so a million objects was a big number.

These days, the kernel isn't even the largest git project, and even
the kernel has about 220k revisions (_much_ bigger than the BK tree
ever was) and we are approaching two million objects. At that point,
seven hex digits is still unique for a lot of them, but when we're
talking about just two orders of magnitude difference between number
of objects and the hash size, there _will_ be collisions in truncated
hash values. It's no longer even close to unrealistic - it happens all
the time.

We should both increase the default abbrev that was unrealistically
small, _and_ add a way for people to set their own default per-project
in the git config file.

This is the first step to first make it configurable; the default of 7
is not raised yet.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-03-11 14:42:54 -08:00
Documentation Make the default abbrev length configurable 2011-03-11 14:42:54 -08:00
block-sha1
builtin Make the default abbrev length configurable 2011-03-11 14:42:54 -08:00
compat Merge branch 'rj/msvc-fix' 2010-12-16 12:55:36 -08:00
contrib Merge branch 'pd/bash-4-completion' 2010-12-22 14:40:55 -08:00
git-gui Merge branch 'master' of git://repo.or.cz/git-gui 2010-11-05 10:41:09 -07:00
git_remote_helpers
gitk-git Merge branch 'maint' 2011-01-08 23:48:47 -08:00
gitweb Don't pass "--xhtml" to hightlight in gitweb.perl script. 2011-01-27 12:13:07 -08:00
perl
ppc
t Merge branch 'maint' 2011-01-27 10:27:49 -08:00
templates
vcs-svn svndump.c: Fix a printf format compiler warning 2011-01-18 16:48:47 -08:00
xdiff Merge branch 'cb/diff-fname-optim' into maint 2010-11-24 12:46:26 -08:00
.gitattributes
.gitignore Merge branch 'nd/setup' 2010-12-28 11:26:55 -08:00
.mailmap
COPYING
GIT-VERSION-GEN Git 1.7.4 2011-01-30 19:02:37 -08:00
INSTALL docs: default to more modern toolset 2010-11-24 15:13:58 -08:00
Makefile Merge branch 'nd/setup' 2010-12-28 11:26:55 -08:00
README
RelNotes Prepare for 1.7.3.5 2010-12-28 13:48:54 -08:00
abspath.c
aclocal.m4
advice.c
advice.h
alias.c
alloc.c
archive-tar.c
archive-zip.c
archive.c archive: improve --verbose description 2010-11-15 10:05:38 -08:00
archive.h
attr.c
attr.h
base85.c
bisect.c
bisect.h
blob.c
blob.h
branch.c
branch.h Change incorrect "remote branch" to "remote tracking branch" in C code 2010-11-03 09:20:47 -07:00
builtin.h Merge branch 'il/remote-fd-ext' 2010-12-08 11:24:14 -08:00
bundle.c
bundle.h
cache-tree.c
cache-tree.h
cache.h Make the default abbrev length configurable 2011-03-11 14:42:54 -08:00
check-builtins.sh
check-racy.c
check_bindir
color.c default color.status.branch to "same as header" 2010-12-10 12:59:52 -08:00
color.h default color.status.branch to "same as header" 2010-12-10 12:59:52 -08:00
combine-diff.c
command-list.txt
commit.c Merge branch 'tf/commit-list-prefix' 2010-12-22 14:40:17 -08:00
commit.h Merge branch 'tf/commit-list-prefix' 2010-12-22 14:40:17 -08:00
config.c Make the default abbrev length configurable 2011-03-11 14:42:54 -08:00
config.mak.in Merge branch 'jk/asciidoc-update' 2010-12-12 21:49:51 -08:00
configure.ac Merge branch 'jk/asciidoc-update' 2010-12-12 21:49:51 -08:00
connect.c
convert.c convert filter: supply path to external driver 2010-12-22 10:19:32 -08:00
copy.c
csum-file.c
csum-file.h
ctype.c
daemon.c daemon: support <directory> arguments again 2011-01-04 11:23:42 -08:00
date.c
decorate.c
decorate.h
delta.h
diff-delta.c
diff-lib.c
diff-no-index.c
diff.c Merge branch 'ks/blame-worktree-textconv-cached' 2010-12-21 14:30:52 -08:00
diff.h Merge branch 'kb/merge-recursive-rename-threshold' 2010-10-26 21:54:04 -07:00
diffcore-break.c
diffcore-delta.c
diffcore-order.c
diffcore-pickaxe.c
diffcore-rename.c
diffcore.h
dir.c Merge branch 'nd/maint-relative' into maint 2011-01-19 08:25:31 -08:00
dir.h Merge branch 'nd/maint-fix-add-typo-detection' 2010-12-22 14:40:26 -08:00
editor.c
entry.c entry.c: remove "checkout-index" from error messages 2010-11-29 14:03:07 -08:00
environment.c Make the default abbrev length configurable 2011-03-11 14:42:54 -08:00
exec_cmd.c exec_cmd: remove unused extern 2011-01-19 08:27:22 -08:00
exec_cmd.h
fast-import.c Merge branch 'maint' 2011-01-27 10:27:49 -08:00
fetch-pack.h
fixup-builtins
fsck.c
fsck.h
generate-cmdlist.sh
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
git-bisect.sh
git-compat-util.h Merge branch 'jn/thinner-wrapper' 2010-12-03 16:13:06 -08:00
git-cvsexportcommit.perl
git-cvsimport.perl Merge branch 'mg/cvsimport' 2011-01-05 13:30:29 -08:00
git-cvsserver.perl Merge branch 'ab/require-perl-5.8' 2010-10-26 21:57:31 -07:00
git-difftool--helper.sh difftool: provide basename to external tools 2010-12-16 13:01:36 -08:00
git-difftool.perl difftool: Fix failure on Cygwin 2010-12-14 11:13:41 -08:00
git-filter-branch.sh
git-instaweb.sh git instaweb: enable remote_heads 2010-11-17 13:04:52 -08:00
git-lost-found.sh
git-merge-octopus.sh
git-merge-one-file.sh
git-merge-resolve.sh
git-mergetool--lib.sh
git-mergetool.sh
git-parse-remote.sh Merge branch 'mz/pull-rebase-rebased' 2010-12-12 21:49:51 -08:00
git-pull.sh Merge branch 'jl/fetch-submodule-recursive' 2010-12-16 12:57:15 -08:00
git-quiltimport.sh
git-rebase--interactive.sh Merge branch 'maint' 2011-01-27 10:27:49 -08:00
git-rebase.sh Merge branch 'maint' 2011-01-27 10:27:49 -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
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-send-email.perl Merge branch 'ab/require-perl-5.8' into maint 2010-12-09 10:35:21 -08:00
git-sh-setup.sh Porcelain scripts: Rewrite cryptic "needs update" error message 2010-10-28 13:28:44 -07:00
git-stash.sh
git-submodule.sh Merge branch 'tr/submodule-relative-scp-url' into maint 2011-01-19 08:26:41 -08:00
git-svn.perl git-svn: allow the mergeinfo property to be set 2010-12-10 04:09:48 +08:00
git-web--browse.sh web--browse: better support for chromium 2010-12-03 14:05:32 -08:00
git.c Merge branch 'nd/setup' 2010-12-28 11:26:55 -08:00
git.spec.in
graph.c
graph.h
grep.c
grep.h
hash.c
hash.h
help.c help: always suggest common-cmds if prefix of cmd 2010-12-05 12:15:12 -08:00
help.h
hex.c
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
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
levenshtein.c
levenshtein.h
list-objects.c
list-objects.h
ll-merge.c ll-merge: simplify opts == NULL case 2011-01-15 20:34:14 -08:00
ll-merge.h
lockfile.c
log-tree.c
log-tree.h
mailmap.c
mailmap.h
match-trees.c
merge-file.c
merge-recursive.c Merge branch 'en/merge-recursive' 2010-11-29 17:52:35 -08:00
merge-recursive.h Merge branch 'kb/merge-recursive-rename-threshold' 2010-10-26 21:54:04 -07:00
name-hash.c
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
notes-merge.c git notes merge: Add another auto-resolving strategy: "cat_sort_uniq" 2010-11-17 13:22:53 -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 Merge branch 'jh/notes-merge' 2010-12-08 11:24:12 -08:00
notes.h Merge branch 'jh/notes-merge' 2010-12-08 11:24:12 -08:00
object.c
object.h
pack-check.c
pack-refs.c
pack-refs.h
pack-revindex.c
pack-revindex.h
pack-write.c
pack.h
pager.c
parse-options.c parse-options: make resuming easier after PARSE_OPT_STOP_AT_NON_OPTION 2010-12-07 14:19:32 -08:00
parse-options.h Merge branch 'jn/parse-options-extra' 2010-12-12 21:49:53 -08:00
patch-delta.c
patch-ids.c
patch-ids.h
path.c path helpers: move git_mkstemp* to wrapper.c 2010-11-10 11:04:26 -08:00
pkt-line.c
pkt-line.h
preload-index.c
pretty.c pretty.c: teach format_commit_message() to reencode the output 2010-11-04 13:53:34 -07:00
progress.c
progress.h
quote.c
quote.h
reachable.c
reachable.h
read-cache.c Merge branch 'jj/icase-directory' 2010-12-03 16:10:34 -08:00
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.h
remote-curl.c
remote.c Change "tracking branch" to "remote-tracking branch" 2010-11-03 09:20:41 -07:00
remote.h
replace_object.c
rerere.c Merge branch 'jf/merge-ignore-ws' 2010-10-26 21:40:54 -07:00
rerere.h
resolve-undo.c
resolve-undo.h
revision.c Merge branch 'tf/commit-list-prefix' 2010-12-22 14:40:17 -08:00
revision.h
run-command.c
run-command.h
send-pack.h push: pass --progress down to git-pack-objects 2010-10-18 16:20:19 -07:00
server-info.c
setup.c Subject: setup: officially support --work-tree without --git-dir 2011-01-21 14:31:24 -08:00
sha1-lookup.c
sha1-lookup.h
sha1_file.c Correctly report corrupted objects 2011-01-20 13:18:51 -08:00
sha1_name.c Merge branch 'tf/commit-list-prefix' 2010-12-22 14:40:17 -08:00
shallow.c
shell.c
shortlog.h
show-index.c
sideband.c
sideband.h
sigchain.c
sigchain.h
strbuf.c strbuf: move strbuf_branchname to sha1_name.c 2010-11-10 11:07:04 -08:00
strbuf.h
string-list.c
string-list.h
submodule.c fetch_populated_submodules(): document dynamic allocation 2010-12-09 23:42:05 -08:00
submodule.h Add the 'fetch.recurseSubmodules' config setting 2010-11-12 15:06:03 -08: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
test-ctype.c
test-date.c
test-delta.c
test-dump-cache-tree.c
test-genrandom.c
test-index-version.c
test-line-buffer.c
test-match-trees.c
test-obj-pool.c
test-parse-options.c add description parameter to OPT__QUIET 2010-11-15 09:58:13 -08:00
test-path-utils.c
test-run-command.c
test-sha1.c
test-sha1.sh
test-sigchain.c
test-string-pool.c
test-subprocess.c setup_work_tree: adjust relative $GIT_WORK_TREE after moving cwd 2010-12-27 08:34:19 -08:00
test-svn-fe.c
test-treap.c treap: make treap_insert return inserted node 2010-12-07 16:03:55 -08:00
thread-utils.c
thread-utils.h thread-utils.h: simplify the inclusion 2010-12-10 12:58:06 -08:00
trace.c trace.c: ensure NULL is not passed to printf 2011-01-06 12:21:49 -08:00
transport-helper.c thread-utils.h: simplify the inclusion 2010-12-10 12:58:06 -08:00
transport.c push: pass --progress down to git-pack-objects 2010-10-18 16:20:19 -07:00
transport.h
tree-diff.c Merge branch 'en/tree-walk-optim' 2010-10-26 21:37:49 -07:00
tree-walk.c
tree-walk.h
tree.c
tree.h
unimplemented.sh
unpack-trees.c Merge branch 'nd/maint-fix-add-typo-detection' 2010-12-22 14:40:26 -08:00
unpack-trees.h use persistent memory for rejected paths 2010-12-14 08:55:13 -08:00
upload-pack.c commit: Add commit_list prefix in two function names. 2010-11-29 14:01:52 -08: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
userdiff.c Merge branch 'as/userdiff-pascal' 2011-01-24 10:54:12 -08:00
userdiff.h
utf8.c
utf8.h
walker.c commit: Add commit_list prefix in two function names. 2010-11-29 14:01:52 -08:00
walker.h
wrap-for-bin.sh
wrapper.c set_try_to_free_routine(NULL) means "do nothing special" 2010-12-21 09:25:14 -08:00
write_or_die.c
ws.c Make the tab width used for whitespace checks configurable 2010-12-01 14:47:51 -08:00
wt-status.c Merge branch 'aa/status-hilite-branch' 2010-12-16 12:50:03 -08:00
wt-status.h status: show branchname with a configurable color 2010-11-29 16:31:34 -08:00
xdiff-interface.c Merge branch 'rs/maint-diff-fd-leak' into maint 2010-12-26 11:18:39 -08:00
xdiff-interface.h
zlib.c wrapper: give zlib wrappers their own translation unit 2010-11-10 11:07:51 -08:00

README

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

	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.