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
This commit is contained in:
27
read-cache.c
27
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;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user