path: root/Documentation
diff options
authorLinus Torvalds <>2010-10-28 18:28:04 (GMT)
committerJunio C Hamano <>2011-03-11 22:42:54 (GMT)
commitdce96489162b05ae3463741f7f0365ff56f0de36 (patch)
treeb342bc64b96a6553e58c0a29a1225c0d7832e9b4 /Documentation
parent7ed863a85a6ce2c4ac4476848310b8f917ab41f9 (diff)
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 <>
Diffstat (limited to 'Documentation')
1 files changed, 6 insertions, 0 deletions
diff --git a/Documentation/config.txt b/Documentation/config.txt
index c5e1835..30afde9 100644
--- a/Documentation/config.txt
+++ b/Documentation/config.txt
@@ -567,6 +567,12 @@ core.sparseCheckout::
Enable "sparse checkout" feature. See section "Sparse checkout" in
linkgit:git-read-tree[1] for more information.
+ Set the length object names are abbreviated to. If unspecified,
+ many commands abbreviate to 7 hexdigits, which may not be enough
+ for abbreviated object names to stay unique for sufficiently long
+ time.
Tells 'git add' to continue adding files when some files cannot be