diff options
author | Edward Thomson <ethomson@github.com> | 2016-06-02 02:34:03 -0500 |
---|---|---|
committer | Edward Thomson <ethomson@github.com> | 2016-06-02 02:38:55 -0500 |
commit | 46082c384f6c4872cb2ebef6666e9a65b045b609 (patch) | |
tree | 596562409e83f97384cfcddffc937f117fd86773 | |
parent | 5acf18ac6304fc216f1adecba64d61c895a883c8 (diff) | |
download | libgit2-46082c384f6c4872cb2ebef6666e9a65b045b609.tar.gz |
index_read_index: invalidate new paths in tree cache
When adding a new entry to an existing index via `git_index_read_index`,
be sure to remove the tree cache entry for that new path. This will
mark all parent trees as dirty.
-rw-r--r-- | src/index.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/index.c b/src/index.c index 430a34f8e..20ab6a19d 100644 --- a/src/index.c +++ b/src/index.c @@ -3004,6 +3004,12 @@ int git_index_read_index( ((struct entry_internal *)add_entry)->pathlen); } + /* invalidate this path in the tree cache if this is new (to + * invalidate the parent trees) + */ + if (dup_entry && !remove_entry && index->tree) + git_tree_cache_invalidate_path(index->tree, dup_entry->path); + if (add_entry) { if ((error = git_vector_insert(&new_entries, add_entry)) == 0) INSERT_IN_MAP_EX(index, new_entries_map, add_entry, error); |