[PATCH v4 00/10] Untracked cache improvements
- From
Christian Couder <christian.couder@gmail.com>
- Date
- Dec 29, 2015, 07:09 UTC
- Message-ID
- <1451372974-16266-1-git-send-email-chriscool@tuxfamily.org>
Here is a new version of a patch series to improve the untracked cache feature.
This v4 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 though is now `keep` in which case the untracked cache is neither removed nor added, and used if it is there.
Patch 1/10 is a small bugfix that has not changed since v3.
Patch 2/10 to 4/10 add some small features that are missing. The only chqnge there since v3 is that we are now using `report()` to display verbose information, thanks to Duy.
Patchs 5/10 to 7/10 are some refactoring to prepare for the following patchs. Among them 6/10 is the result of merging two patchs from v3, thanks to Eric.
Patch 8/10 deals with the "ident" field in "struct untracked_cache" and is mostly the same as in v3. The difference is just a small bug fix to prevent a crash.
Patch 9/10 adds core.untrackedCache. It has been changed compared to
v3 in the following ways:
- the config variable is now a tristate, thanks to Junio,
- we use `switch` to deal with different values, thanks to Torsten,
- documentation for --test-untracked-cache is improved, thanks to
David.Patch 10/10, which contains tests, has been changed to reflect changes in 9/10 and to add a few tests.
So the changes compared to v3 are mostly small updates, and patchs 6/10, 9/10 and 10/10.
The patch series is also available there:
https://github.com/chriscool/git/tree/uc-notifs40
Thanks to the reviewers and helpers.
Christian Couder (10):
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
t7063: add tests for core.untrackedCacheDocumentation/config.txt | 7 +++ Documentation/git-update-index.txt | 65 +++++++++++++++++++++++----- builtin/update-index.c | 62 ++++++++++++++++---------- cache.h | 1 + config.c | 11 +++++ contrib/completion/git-completion.bash | 1 + dir.c | 70 ++++++++++++++++++++++++------ dir.h | 2 + environment.c | 1 + t/t7063-status-untracked-cache.sh | 79 +++++++++++++++++++++++++++++++--- wt-status.c | 13 ++++++ 11 files changed, 260 insertions(+), 52 deletions(-)
-- 2.7.0.rc2.10.g544ad6b