Skip to content

Commit cb16bcc

Browse files
committed
Merge branch 'jk/maint-rmdir-fix' into maint-1.6.6
* jk/maint-rmdir-fix: rm: fix bug in recursive subdirectory removal
2 parents 11a1a49 + 3fc0d13 commit cb16bcc

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

dir.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -933,7 +933,7 @@ int remove_path(const char *name)
933933
slash = dirs + (slash - name);
934934
do {
935935
*slash = '\0';
936-
} while (rmdir(dirs) && (slash = strrchr(dirs, '/')));
936+
} while (rmdir(dirs) == 0 && (slash = strrchr(dirs, '/')));
937937
free(dirs);
938938
}
939939
return 0;

t/t3600-rm.sh

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -271,4 +271,12 @@ test_expect_success 'choking "git rm" should not let it die with cruft' '
271271
test "$status" != 0
272272
'
273273

274+
test_expect_success 'rm removes subdirectories recursively' '
275+
mkdir -p dir/subdir/subsubdir &&
276+
echo content >dir/subdir/subsubdir/file &&
277+
git add dir/subdir/subsubdir/file &&
278+
git rm -f dir/subdir/subsubdir/file &&
279+
! test -d dir
280+
'
281+
274282
test_done

0 commit comments

Comments
 (0)