Skip to content

pr-986/TaoK/taok-empty-untracked-cache-bug-v2

This patchset addresses a performance issue with untracked cache. When a new
untracked cache structure is added to the index but remains empty,
subsequent "git status" calls populate it but do not write the index - so
they perform as though the index were disabled.

This situation can be caused in several different ways:

 * Running "git update-index --untracked-cache" on a repo that did not have
   the untracked cache
 * Modifying the git configuration to enable untracked cache, but then
   immediately running "git status -uall", causing the untracked cache to be
   created, but not used/populated (and the index written).
 * (likely others)

The patchset includes fixes to t7519, which otherwise starts failing because
it wasn't testing what it intended to.

Tao Klerks (3):
  t7519: avoid file to index mtime race for untracked cache
  t7519: populate untracked cache before test
  untracked-cache: write index when populating empty untracked cache

 dir.c                       | 10 +++++++---
 t/t7519-status-fsmonitor.sh |  7 +++++++
 2 files changed, 14 insertions(+), 3 deletions(-)

base-commit: 4c53a8c20f8984adb226293a3ffd7b88c3f4ac1a

Submitted-As: https://lore.kernel.org/git/pull.986.v2.git.1645809015.gitgitgadget@gmail.com
In-Reply-To: https://lore.kernel.org/git/pull.986.git.1624559401.gitgitgadget@gmail.com
Assets 2