aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2011-04-27 11:36:41 -0700
committerJunio C Hamano <gitster@pobox.com>2011-04-27 11:36:41 -0700
commit1de0746d849c64e1f4d160f9915d87d39c0794ea (patch)
tree9b85bfacac5e7098856808a25da0b5511ba66fd6
parent385185403e74f3b4b52c33bb263ca735c512f66f (diff)
parent0235017eafa8dfc3a7353b7091ad5109d0beb7a5 (diff)
downloadgit-1de0746d849c64e1f4d160f9915d87d39c0794ea.tar.gz
git-1de0746d849c64e1f4d160f9915d87d39c0794ea.tar.xz
Merge branch 'ar/clean-rmdir-empty'
* ar/clean-rmdir-empty: clean: unreadable directory may still be rmdir-able if it is empty
-rw-r--r--dir.c2
-rwxr-xr-xt/t7300-clean.sh7
2 files changed, 8 insertions, 1 deletions
diff --git a/dir.c b/dir.c
index 325fb56ad..532bcb65b 100644
--- a/dir.c
+++ b/dir.c
@@ -1192,7 +1192,7 @@ int remove_dir_recursively(struct strbuf *path, int flag)
dir = opendir(path->buf);
if (!dir)
- return -1;
+ return rmdir(path->buf);
if (path->buf[original_len - 1] != '/')
strbuf_addch(path, '/');
diff --git a/t/t7300-clean.sh b/t/t7300-clean.sh
index 7e1be4440..800b5368a 100755
--- a/t/t7300-clean.sh
+++ b/t/t7300-clean.sh
@@ -453,4 +453,11 @@ test_expect_success 'git clean -e' '
)
'
+test_expect_success SANITY 'git clean -d with an unreadable empty directory' '
+ mkdir foo &&
+ chmod a= foo &&
+ git clean -dfx foo &&
+ ! test -d foo
+'
+
test_done