Skip to content

Commit fe74704

Browse files
rscharfegitster
authored andcommitted
fsck: detect more in-tree d/f conflicts
If the conflict candidate file name from the top of the stack is not a prefix of the current candiate directory then we can discard it as no matching directory can come up later. But we are not done checking the candidate directory -- the stack might still hold a matching file name, so stay in the loop and check the next candidate file name. Signed-off-by: René Scharfe <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent 3d71b1c commit fe74704

File tree

2 files changed

+2
-2
lines changed

2 files changed

+2
-2
lines changed

fsck.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -620,7 +620,7 @@ static int verify_ordered(unsigned mode1, const char *name1,
620620
if (!f_name)
621621
break;
622622
if (!skip_prefix(name2, f_name, &p))
623-
break;
623+
continue;
624624
if (!*p)
625625
return TREE_HAS_DUPS;
626626
if (is_less_than_slash(*p)) {

t/t1450-fsck.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -261,7 +261,7 @@ check_duplicate_names () {
261261

262262
check_duplicate_names success x x.1 x/
263263
check_duplicate_names success x x.1.2 x.1/ x/
264-
check_duplicate_names failure x x.1 x.1.2 x/
264+
check_duplicate_names success x x.1 x.1.2 x/
265265

266266
test_expect_success 'unparseable tree object' '
267267
test_oid_cache <<-\EOF &&

0 commit comments

Comments
 (0)