summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2018-11-21 11:39:02 (GMT)
committerJunio C Hamano <gitster@pobox.com>2018-11-21 11:39:03 (GMT)
commit9da9fff14d82e1ce055b664f276a5a96d2f5e946 (patch)
tree0c0affd245c2d30fbb7b55f8d415c48fb87cc03c
parent5e8feea17a4fc8391a3252b926015c917869a140 (diff)
parente66ceca94b6137dd73cab8b19ba8c890a0055544 (diff)
downloadgit-9da9fff14d82e1ce055b664f276a5a96d2f5e946.zip
git-9da9fff14d82e1ce055b664f276a5a96d2f5e946.tar.gz
git-9da9fff14d82e1ce055b664f276a5a96d2f5e946.tar.bz2
Merge branch 'nd/clone-case-smashing-warning'
Recently added check for case smashing filesystems did not correctly utilize the cached stat information, leading to false breakage detected by our test suite, which has been corrected. * nd/clone-case-smashing-warning: clone: fix colliding file detection on APFS
-rw-r--r--entry.c4
-rwxr-xr-xt/t5601-clone.sh2
2 files changed, 3 insertions, 3 deletions
diff --git a/entry.c b/entry.c
index 5d136c5..0a3c451 100644
--- a/entry.c
+++ b/entry.c
@@ -404,7 +404,7 @@ static void mark_colliding_entries(const struct checkout *state,
{
int i, trust_ino = check_stat;
-#if defined(GIT_WINDOWS_NATIVE)
+#if defined(GIT_WINDOWS_NATIVE) || defined(__CYGWIN__)
trust_ino = 0;
#endif
@@ -419,7 +419,7 @@ static void mark_colliding_entries(const struct checkout *state,
if (dup->ce_flags & (CE_MATCHED | CE_VALID | CE_SKIP_WORKTREE))
continue;
- if ((trust_ino && dup->ce_stat_data.sd_ino == st->st_ino) ||
+ if ((trust_ino && !match_stat_data(&dup->ce_stat_data, st)) ||
(!trust_ino && !fspathcmp(ce->name, dup->name))) {
dup->ce_flags |= CE_MATCHED;
break;
diff --git a/t/t5601-clone.sh b/t/t5601-clone.sh
index f1a49e9..c28d51b 100755
--- a/t/t5601-clone.sh
+++ b/t/t5601-clone.sh
@@ -628,7 +628,7 @@ test_expect_success 'clone on case-insensitive fs' '
)
'
-test_expect_success !MINGW,!CYGWIN,CASE_INSENSITIVE_FS 'colliding file detection' '
+test_expect_success !MINGW,CASE_INSENSITIVE_FS 'colliding file detection' '
grep X icasefs/warning &&
grep x icasefs/warning &&
test_i18ngrep "the following paths have collided" icasefs/warning