git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 1/2] update-index doc: note a fixed bug in the untracked cache

From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Date
Feb 9, 2018, 21:04 UTC
Message-ID
<20180209210431.409-2-avarab@gmail.com>
In-Reply-To
<20180209210431.409-1-avarab@gmail.com>

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>
---
 Documentation/git-update-index.txt | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)
diff --git a/Documentation/git-update-index.txt b/Documentation/git-update-index.txt
index bdb0342593..e30b185918 100644
--- a/Documentation/git-update-index.txt
+++ b/Documentation/git-update-index.txt
@@ -464,6 +464,22 @@ command reads the index; while when `--[no-|force-]untracked-cache`
 are used, the untracked cache is immediately added to or removed from
 the index.
 
+Before 2.17, the untracked cache had a bug where replacing a directory
+with a symlink to another directory could cause it to incorrectly show
+files tracked by git as untracked. See the "status: add a failing test
+showing a core.untrackedCache bug" commit to git.git. A workaround for
+that was (and this might work for other undiscoverd bugs in the
+future):
+
+----------------
+$ git -c core.untrackedCache=false status
+----------------
+
+This bug has also been shown to affect non-symlink cases of replacing
+a directory with a file when it comes to the internal structures of
+the untracked cache, but no case has been found where this resulted in
+wrong "git status" output.
+
 File System Monitor
 -------------------
 
-- 
2.15.1.424.g9478a66081
Previous: Ævar Arnfjörð BjarmasonNext: Junio C Hamano
Message 13 of 22 in “What's cooking in git.git (Jan 2018, #04; Wed, 31)”
  1. Junio C HamanoFeb 1, 2018
  2. Ævar Arnfjörð BjarmasonFeb 1, 2018
  3. Junio C HamanoFeb 2, 2018
  4. Johannes SchindelinFeb 9, 2018
  5. Ævar Arnfjörð BjarmasonFeb 9, 2018
  6. Ævar Arnfjörð BjarmasonFeb 1, 2018
  7. Junio C HamanoFeb 2, 2018
  8. Ævar Arnfjörð BjarmasonFeb 2, 2018
  9. Ævar Arnfjörð BjarmasonFeb 9, 2018
  10. Junio C HamanoFeb 9, 2018
  11. 0/2 update-index doc: note new caveats in 2.17Ævar Arnfjörð Bjarmason, Feb 9, 2018
  12. 2/2 update-index doc: note the caveat with "could not open..."Ævar Arnfjörð Bjarmason, Feb 9, 2018
  13. 1/2 update-index doc: note a fixed bug in the untracked cacheÆvar Arnfjörð Bjarmason, Feb 9, 2018
  14. Junio C HamanoFeb 9, 2018
  15. Ævar Arnfjörð BjarmasonFeb 9, 2018
  16. Junio C HamanoFeb 9, 2018
  17. Ævar Arnfjörð BjarmasonFeb 9, 2018
  18. Junio C HamanoFeb 9, 2018
  19. Ævar Arnfjörð BjarmasonFeb 9, 2018
  20. Duy NguyenFeb 10, 2018
  21. Ævar Arnfjörð BjarmasonFeb 11, 2018
  22. Duy NguyenFeb 12, 2018

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.