]> git.ipfire.org Git - thirdparty/git.git/blobdiff - dir.c
untracked cache: mark index dirty if untracked cache is updated
[thirdparty/git.git] / dir.c
diff --git a/dir.c b/dir.c
index 1cf1e3002ebef7cd0eec5f8a7409f4eda501e83a..592b5fa79567bac71ebd2c709f3712c817bc1417 100644 (file)
--- a/dir.c
+++ b/dir.c
@@ -1934,6 +1934,15 @@ int read_directory(struct dir_struct *dir, const char *path, int len, const stru
                                 dir->untracked->gitignore_invalidated,
                                 dir->untracked->dir_invalidated,
                                 dir->untracked->dir_opened);
+               if (dir->untracked == the_index.untracked &&
+                   (dir->untracked->dir_opened ||
+                    dir->untracked->gitignore_invalidated ||
+                    dir->untracked->dir_invalidated))
+                       the_index.cache_changed |= UNTRACKED_CHANGED;
+               if (dir->untracked != the_index.untracked) {
+                       free(dir->untracked);
+                       dir->untracked = NULL;
+               }
        }
        return dir->nr;
 }