Alex Riesen venit, vidit, dixit 01.04.2011 10:29: > Consider unreadable empty directories. rmdir(2) will remove > them just fine, assuming the parent directory is modifiable. > > Noticed by Linus. > > Signed-off-by: Alex Riesen <raa.lkml@xxxxxxxxx> > --- > On Fri, Apr 1, 2011 at 00:01, Linus Torvalds > <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote: >> Which is kind of understandable, but at the same time, if it's empty, >> a "rmdir()" will just work. So git gave up a bit too soon. > ... >> Now, I realize that if the directory isn't empty, and is unreadable, >> we really should give up (although a better error message about _why_ >> we failed may be in order) rather than try to chmod it or anything >> like that. But the simple "try to rmdir it" might be a good addition >> for the trivial case. > > It is not tested, but looks trivial. The system I made it on is a Cygwin Famous last words... > machine, and a test from last master pull is still running (since two days). > And sorry, it is not based on master. Should apply without problems, though. > > --- > dir.c | 5 ++++- > 1 files changed, 4 insertions(+), 1 deletions(-) > > diff --git a/dir.c b/dir.c > index 325fb56..7251426 100644 > --- a/dir.c > +++ b/dir.c > @@ -1191,8 +1191,11 @@ int remove_dir_recursively(struct strbuf *path, int flag) > return 0; > > dir = opendir(path->buf); > - if (!dir) > + if (!dir) { > + if (rmdir(path->buf) == 0) > + return 0; > return -1; > + } > if (path->buf[original_len - 1] != '/') > strbuf_addch(path, '/'); > How about simply if (!dir) return rmdir(path->buf); like we do later on in that function? Michael -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html