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
Родитель 5e8feea17a e66ceca94b
Коммит 9da9fff14d
2 изменённых файлов: 3 добавлений и 3 удалений

Просмотреть файл

@ -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;

Просмотреть файл

@ -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