summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2018-01-21 21:12:37 -0800
committerJunio C Hamano <gitster@pobox.com>2018-01-21 21:12:37 -0800
commitea7b5de1c1187294d3d4dca93b129e049ca7ca76 (patch)
treef41b6fd4758d9aa51f4d6f795b071ba9b469e383
parent2512f15446149235156528dafbe75930c712b29e (diff)
parentb6947af2294ea0c814f5b4cb8737c782895519b2 (diff)
downloadgit-ea7b5de1c1187294d3d4dca93b129e049ca7ca76.tar.gz
Merge branch 'bc/hash-algo' into maint
* bc/hash-algo: t5601-clone: test case-conflicting files on case-insensitive filesystem repository: pre-initialize hash algo pointer
-rw-r--r--repository.c2
-rwxr-xr-xt/t5601-clone.sh17
2 files changed, 18 insertions, 1 deletions
diff --git a/repository.c b/repository.c
index 998413b8bb..f66fcb1342 100644
--- a/repository.c
+++ b/repository.c
@@ -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;
diff --git a/t/t5601-clone.sh b/t/t5601-clone.sh
index 0f895478f0..8c437bf872 100755
--- a/t/t5601-clone.sh
+++ b/t/t5601-clone.sh
@@ -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