pr-985/TaoK/taok-untracked-cache-with-uall-v4
tagged this
27 Feb 15:13
From: Tao Klerks <tao@klerks.biz> Untracked cache was originally designed to only work with '-untracked-files=normal', but this causes performance issues for UI tooling that wants to see "all" on a frequent basis. On the other hand, the conditions that prevented applicability to the "all" mode no longer seem to apply. The disqualification of untracked cache has a particularly significant impact on Windows with the defaulted fscache, where the introduction of fsmonitor can make the first and costly directory-iteration happen in untracked file detection, single-threaded, rather than in preload-index on multiple threads. Improving the performance of a "normal" 'git status' run with fsmonitor can make 'git status --untracked-files=all' perform much worse. To partially address this, align the supported directory flags for the stored untracked cache data with the git config. If a user specifies an '--untracked-files=' commandline parameter that does not align with their 'status.showuntrackedfiles' config value, then the untracked cache will be ignored - as it is for other unsupported situations like when a pathspec is specified. If the previously stored flags no longer match the current configuration, but the currently-applicable flags do match the current configuration, then discard the previously stored untracked cache data. For most users there will be no change in behavior. Users who need '--untracked-files=all' to perform well will now have the option of setting "status.showuntrackedfiles" to "all" for better / more consistent performance. Users who need '--untracked-files=all' to perform well for their tooling AND prefer to avoid the verbosity of "all" when running git status explicitly without options... are out of luck for now (no change). Users who have the "status.showuntrackedfiles" config set to "all" and yet frequently explicitly call 'git status --untracked-files=normal' (and use the untracked cache) are the only ones who will be disadvantaged by this change. Their "--untracked-files=normal" calls will, after this change, no longer use the untracked cache. Signed-off-by: Tao Klerks <tao@klerks.biz> Submitted-As: https://lore.kernel.org/git/pull.985.v4.git.1645974782256.gitgitgadget@gmail.com In-Reply-To: https://lore.kernel.org/git/pull.985.git.1624430668741.gitgitgadget@gmail.com In-Reply-To: https://lore.kernel.org/git/pull.985.v2.git.1645811564461.gitgitgadget@gmail.com In-Reply-To: https://lore.kernel.org/git/pull.985.v3.git.1645960973798.gitgitgadget@gmail.com
Assets 2
-
2022-02-27T15:13:02Z -
2022-02-27T15:13:02Z -