update-index doc: note a fixed bug in the untracked cache

Document the bug tested for in my "status: add a failing test showing a core.untrackedCache bug" and fixed in Duy's "dir.c: fix missing dir invalidation in untracked code". Since this is very likely something others will encounter in the future on older versions, and it's not obvious how to fix it let's document both that it exists, and how to "fix" it with a one-off command. As noted in that commit, even though this bug gets the untracked cache into a bad state, we have not yet found a case where this is user visible, and thus it makes sense for these docs to focus on the symlink case only. Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Ævar Arnfjörð Bjarmason committed Feb 9, 2018 at 21:04 UTC 9b978691b1940024beeccaf8944f7125c746a628
1 file changed +16
Documentation/git-update-index.txt
+16
@@ -464,6 +464,22 @@ command reads the index; while when `--[no-|force-]untracked-cache`
464 are used, the untracked cache is immediately added to or removed from
465 the index.
466
467 +Before 2.17, the untracked cache had a bug where replacing a directory
468 +with a symlink to another directory could cause it to incorrectly show
469 +files tracked by git as untracked. See the "status: add a failing test
470 +showing a core.untrackedCache bug" commit to git.git. A workaround for
471 +that is (and this might work for other undiscovered bugs in the
472 +future):
473 +
474 +----------------
475 +$ git -c core.untrackedCache=false status
476 +----------------
477 +
478 +This bug has also been shown to affect non-symlink cases of replacing
479 +a directory with a file when it comes to the internal structures of
480 +the untracked cache, but no case has been reported where this resulted in
481 +wrong "git status" output.
482 +
483 File System Monitor
484 -------------------
485