Commit 95bff9d443b57424cb20928cd06177a08e38d638

Vicent Martí 2013-09-24T12:01:24

Merge pull request #1869 from ethomson/fs_iterator_race_2 Ignore files that disappear while iterating

diff --git a/src/path.c b/src/path.c
index 42b3d6f..9d8e903 100644
--- a/src/path.c
+++ b/src/path.c
@@ -902,8 +902,16 @@ int git_path_dirload_with_stat(
 		git_buf_truncate(&full, prefix_len);
 
 		if ((error = git_buf_joinpath(&full, full.ptr, ps->path)) < 0 ||
-			(error = git_path_lstat(full.ptr, &ps->st)) < 0)
+			(error = git_path_lstat(full.ptr, &ps->st)) < 0) {
+			if (error == GIT_ENOTFOUND) {
+				giterr_clear();
+				error = 0;
+				git_vector_remove(contents, i--);
+				continue;
+			}
+
 			break;
+		}
 
 		if (S_ISDIR(ps->st.st_mode)) {
 			if ((error = git_buf_joinpath(&full, full.ptr, ".git")) < 0)