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
This commit is contained in:
Junio C Hamano
2018-11-21 20:39:02 +09:00
2 changed files with 3 additions and 3 deletions

View File

@@ -404,7 +404,7 @@ static void mark_colliding_entries(const struct checkout *state,
{ {
int i, trust_ino = check_stat; int i, trust_ino = check_stat;
#if defined(GIT_WINDOWS_NATIVE) #if defined(GIT_WINDOWS_NATIVE) || defined(__CYGWIN__)
trust_ino = 0; trust_ino = 0;
#endif #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)) if (dup->ce_flags & (CE_MATCHED | CE_VALID | CE_SKIP_WORKTREE))
continue; 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))) { (!trust_ino && !fspathcmp(ce->name, dup->name))) {
dup->ce_flags |= CE_MATCHED; dup->ce_flags |= CE_MATCHED;
break; break;

View File

@@ -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 &&
grep x icasefs/warning && grep x icasefs/warning &&
test_i18ngrep "the following paths have collided" icasefs/warning test_i18ngrep "the following paths have collided" icasefs/warning