Merge branch 'bc/hash-algo' into maint
authorJunio C Hamano <gitster@pobox.com>
Mon, 22 Jan 2018 05:12:37 +0000 (21:12 -0800)
committerJunio C Hamano <gitster@pobox.com>
Mon, 22 Jan 2018 05:12:37 +0000 (21:12 -0800)
* bc/hash-algo:
t5601-clone: test case-conflicting files on case-insensitive filesystem
repository: pre-initialize hash algo pointer

repository.c
t/t5601-clone.sh
index 998413b8bb8deaddef76d93f67be4a1435c9e3a7..f66fcb13425ab53e15ca47407e7c54be5dcdfc8b 100644 (file)
@@ -5,7 +5,7 @@
 
 /* The main repository */
 static struct repository the_repo = {
-       NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, &the_index, NULL, 0, 0
+       NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, &the_index, &hash_algos[GIT_HASH_SHA1], 0, 0
 };
 struct repository *the_repository = &the_repo;
 
index 0f895478f02bcf4cc4408ce065e79e0314b66793..8c437bf8721f929155fa2ddab1677c050ae5caca 100755 (executable)
@@ -611,4 +611,21 @@ test_expect_success 'GIT_TRACE_PACKFILE produces a usable pack' '
        git -C replay.git index-pack -v --stdin <tmp.pack
 '
 
+hex2oct () {
+       perl -ne 'printf "\\%03o", hex for /../g'
+}
+
+test_expect_success 'clone on case-insensitive fs' '
+       git init icasefs &&
+       (
+               cd icasefs
+               o=$(git hash-object -w --stdin </dev/null | hex2oct) &&
+               t=$(printf "100644 X\0${o}100644 x\0${o}" |
+                       git hash-object -w -t tree --stdin) &&
+               c=$(git commit-tree -m bogus $t) &&
+               git update-ref refs/heads/bogus $c &&
+               git clone -b bogus . bogus
+       )
+'
+
 test_done