summaryrefslogtreecommitdiff
path: root/read-cache.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2016-02-10 22:20:06 (GMT)
committerJunio C Hamano <gitster@pobox.com>2016-02-10 22:20:06 (GMT)
commit0e35fcb412965f855e5ac6f469343e2f8e28d5ae (patch)
treee7327947fac2a114a123e00b125bfd24cdc08404 /read-cache.c
parent81ad6a9c538bdbc24754cab577d8e480a8c5d012 (diff)
parent7c121788f4c93a29dbec0d61b3cd986a757a5077 (diff)
downloadgit-0e35fcb412965f855e5ac6f469343e2f8e28d5ae.zip
git-0e35fcb412965f855e5ac6f469343e2f8e28d5ae.tar.gz
git-0e35fcb412965f855e5ac6f469343e2f8e28d5ae.tar.bz2
Merge branch 'cc/untracked'
Update the untracked cache subsystem and change its primary UI from "git update-index" to "git config". * cc/untracked: t7063: add tests for core.untrackedCache test-dump-untracked-cache: don't modify the untracked cache config: add core.untrackedCache dir: simplify untracked cache "ident" field dir: add remove_untracked_cache() dir: add {new,add}_untracked_cache() update-index: move 'uc' var declaration update-index: add untracked cache notifications update-index: add --test-untracked-cache update-index: use enum for untracked cache options dir: free untracked cache when removing it
Diffstat (limited to 'read-cache.c')
-rw-r--r--read-cache.c27
1 files changed, 25 insertions, 2 deletions
diff --git a/read-cache.c b/read-cache.c
index 5be7cd1..d9fb78b 100644
--- a/read-cache.c
+++ b/read-cache.c
@@ -1519,6 +1519,28 @@ static void check_ce_order(struct index_state *istate)
}
}
+static void tweak_untracked_cache(struct index_state *istate)
+{
+ switch (git_config_get_untracked_cache()) {
+ case -1: /* keep: do nothing */
+ break;
+ case 0: /* false */
+ remove_untracked_cache(istate);
+ break;
+ case 1: /* true */
+ add_untracked_cache(istate);
+ break;
+ default: /* unknown value: do nothing */
+ break;
+ }
+}
+
+static void post_read_index_from(struct index_state *istate)
+{
+ check_ce_order(istate);
+ tweak_untracked_cache(istate);
+}
+
/* remember to discard_cache() before reading a different cache! */
int do_read_index(struct index_state *istate, const char *path, int must_exist)
{
@@ -1622,9 +1644,10 @@ int read_index_from(struct index_state *istate, const char *path)
return istate->cache_nr;
ret = do_read_index(istate, path, 0);
+
split_index = istate->split_index;
if (!split_index || is_null_sha1(split_index->base_sha1)) {
- check_ce_order(istate);
+ post_read_index_from(istate);
return ret;
}
@@ -1642,7 +1665,7 @@ int read_index_from(struct index_state *istate, const char *path)
sha1_to_hex(split_index->base_sha1)),
sha1_to_hex(split_index->base->sha1));
merge_base_index(istate);
- check_ce_order(istate);
+ post_read_index_from(istate);
return ret;
}