mirror of
https://github.com/git/git.git
synced 2026-01-10 10:13:33 +00:00
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:
4
entry.c
4
entry.c
@@ -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;
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user