Commit b2a2702da2d714c20aa90194d0b670cd84c30b73

Brodie Rao 2011-10-11T22:05:12

odb_pack: don't do ambiguity checks for fully qualified SHA1 hashes This makes libgit2 more closely match Git, which only checks for ambiguous pack entries when given short hashes. Note that the only time this is ever relevant is when a pack has the same object more than once (it's happened in the wild, I promise).

1
2
3
4
5
6
7
8
9
10
11
12
13
diff --git a/src/pack.c b/src/pack.c
index 8de2d78..2516bea 100644
--- a/src/pack.c
+++ b/src/pack.c
@@ -722,7 +722,7 @@ static int pack_entry_find_offset(
 		}
 	}
 
-	if (found && pos + 1 < (int)p->num_objects) {
+	if (found && len != GIT_OID_HEXSZ && pos + 1 < (int)p->num_objects) {
 		/* Check for ambiguousity */
 		const unsigned char *next = current + stride;