Commit 54bdc64a92bbef7fcc311fa00e38e32cb0bc71e5

Scott J. Goldman 2012-05-10T00:37:03

Fix rmdir() usage on Solaris On Solaris, rmdir() throws EEXIST if the folder is not empty, so just add one more case to check for that, alongside ENOTEMPTY.

1
2
3
4
5
6
7
8
9
10
11
12
13
diff --git a/src/fileops.c b/src/fileops.c
index bf95f76..2c3192c 100644
--- a/src/fileops.c
+++ b/src/fileops.c
@@ -309,7 +309,7 @@ static int _rmdir_recurs_foreach(void *opaque, git_buf *path)
 			return -1;
 
 		if (p_rmdir(path->ptr) < 0) {
-			if (removal_type == GIT_DIRREMOVAL_ONLY_EMPTY_DIRS && errno == ENOTEMPTY)
+			if (removal_type == GIT_DIRREMOVAL_ONLY_EMPTY_DIRS && (errno == ENOTEMPTY || errno == EEXIST))
 				return 0;
 
 			giterr_set(GITERR_OS, "Could not remove directory '%s'", path->ptr);