Skip to content

Commit 7c0be4d

Browse files
committed
Merge branch 'jk/maint-rmdir-fix' into maint
* jk/maint-rmdir-fix: rm: fix bug in recursive subdirectory removal
2 parents 738820a + 3fc0d13 commit 7c0be4d

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
@@ -1044,7 +1044,7 @@ int remove_path(const char *name)
10441044
slash = dirs + (slash - name);
10451045
do {
10461046
*slash = '\0';
1047-
} while (rmdir(dirs) && (slash = strrchr(dirs, '/')));
1047+
} while (rmdir(dirs) == 0 && (slash = strrchr(dirs, '/')));
10481048
free(dirs);
10491049
}
10501050
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)