aboutsummaryrefslogtreecommitdiff
path: root/read-cache.c
diff options
context:
space:
mode:
authorNguyễn Thái Ngọc Duy <pclouds@gmail.com>2014-06-13 19:19:27 +0700
committerJunio C Hamano <gitster@pobox.com>2014-06-13 11:49:38 -0700
commite636a7b4d0304608fe063ffcbbaf99e46f23dbea (patch)
treeb49b7a71aa55fe85073c4fb4813581e4d9008315 /read-cache.c
parentad837d9ef9d555ab5077767c8672ff48c6cb562b (diff)
downloadgit-e636a7b4d0304608fe063ffcbbaf99e46f23dbea.tar.gz
git-e636a7b4d0304608fe063ffcbbaf99e46f23dbea.tar.xz
read-cache: be specific what part of the index has changed
cache entry additions, removals and modifications are separated out. The rest of changes are still in the catch-all flag SOMETHING_CHANGED, which would be more specific later. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'read-cache.c')
-rw-r--r--read-cache.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/read-cache.c b/read-cache.c
index c0c2e39ce..035c72e10 100644
--- a/read-cache.c
+++ b/read-cache.c
@@ -51,7 +51,7 @@ static void replace_index_entry(struct index_state *istate, int nr, struct cache
remove_name_hash(istate, old);
free(old);
set_index_entry(istate, nr, ce);
- istate->cache_changed = 1;
+ istate->cache_changed |= CE_ENTRY_CHANGED;
}
void rename_index_entry_at(struct index_state *istate, int nr, const char *new_name)
@@ -482,7 +482,7 @@ int remove_index_entry_at(struct index_state *istate, int pos)
record_resolve_undo(istate, ce);
remove_name_hash(istate, ce);
free(ce);
- istate->cache_changed = 1;
+ istate->cache_changed |= CE_ENTRY_REMOVED;
istate->cache_nr--;
if (pos >= istate->cache_nr)
return 0;
@@ -512,7 +512,7 @@ void remove_marked_cache_entries(struct index_state *istate)
}
if (j == istate->cache_nr)
return;
- istate->cache_changed = 1;
+ istate->cache_changed |= CE_ENTRY_REMOVED;
istate->cache_nr = j;
}
@@ -1002,7 +1002,7 @@ int add_index_entry(struct index_state *istate, struct cache_entry *ce, int opti
istate->cache + pos,
(istate->cache_nr - pos - 1) * sizeof(ce));
set_index_entry(istate, pos, ce);
- istate->cache_changed = 1;
+ istate->cache_changed |= CE_ENTRY_ADDED;
return 0;
}
@@ -1101,6 +1101,7 @@ static struct cache_entry *refresh_cache_ent(struct index_state *istate,
!(ce->ce_flags & CE_VALID))
updated->ce_flags &= ~CE_VALID;
+ /* istate->cache_changed is updated in the caller */
return updated;
}
@@ -1182,7 +1183,7 @@ int refresh_index(struct index_state *istate, unsigned int flags,
* means the index is not valid anymore.
*/
ce->ce_flags &= ~CE_VALID;
- istate->cache_changed = 1;
+ istate->cache_changed |= CE_ENTRY_CHANGED;
}
if (quiet)
continue;