Here is a new version of a patch series to improve the untracked cache feature. This v5 implements core.untrackedCache as a tristate config variable. When it's `true`, Git commands, especially `git status`, should always add the untracked cache and use it, and when `false`, Git commands should remove it. The default is `keep` in which case the untracked cache is neither removed nor added, and used if it is there. Patch 1/11 is a small bugfix that has not changed. Patch 2/11 to 4/11 add some small features that are missing. There are no changes compared to v4. Patchs 5/11 to 7/11 are some refactoring to prepare for the following patchs. The interface of the new functions has changed as they are now passed a "struct index_state *istate" parameter on which they will operate instead of modifying "the_index". Patch 8/11 deals with the "ident" field in "struct untracked_cache". Following Torsten and Junio's suggestions, the differences compared to v4 are the following: - we store only the kernel "sysname" and not the full kernel version, - we match the full "ident" string instead of just the beginning of the string, - a warning has been improved. Patch 9/11 adds core.untrackedCache. Following Junio's suggestions, it has been changed compared to v4 in the following ways: - we don't die() and we exit 0, if "git update-index --[no-|force-]untracked-cache" is used in a way that goes against the value of core.untrackedCache, - we add or remove the untracked cache in read_index_from() instead of wt_status_collect_untracked(). Patch 10/11 is a new hack that is needed to have test-dump-untracked-cache work like it used to, now that we add or remove the untracked cache in read_index_from(). Because test-dump-untracked-cache indirectly calls read_index_from(), we have to prevent it from addind or removing the untracked cache. Patch 11/11, which contains tests, has been changed to reflect changes in 9/11. So the changes compared to v4 are mostly small updates, and patchs 8/11, 9/11 and 10/11. The patch series is also available there: https://github.com/chriscool/git/tree/uc-notifs63 Thanks to the reviewers and helpers. Christian Couder (11): dir: free untracked cache when removing it update-index: use enum for untracked cache options update-index: add --test-untracked-cache update-index: add untracked cache notifications update-index: move 'uc' var declaration dir: add {new,add}_untracked_cache() dir: add remove_untracked_cache() dir: simplify untracked cache "ident" field config: add core.untrackedCache test-dump-untracked-cache: don't modify the untracked cache t7063: add tests for core.untrackedCache Documentation/config.txt | 9 ++++ Documentation/git-update-index.txt | 67 +++++++++++++++++++++---- builtin/update-index.c | 62 ++++++++++++++--------- cache.h | 3 ++ config.c | 23 +++++++++ contrib/completion/git-completion.bash | 1 + dir.c | 62 ++++++++++++++++++----- dir.h | 3 +- environment.c | 6 +++ read-cache.c | 14 ++++++ t/t7063-status-untracked-cache.sh | 89 +++++++++++++++++++++++++++++++--- test-dump-untracked-cache.c | 2 + 12 files changed, 287 insertions(+), 54 deletions(-) -- 2.7.0.36.g20612a7 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html