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

Re: [PATCH v2 10/10] dir: do not use untracked cache ident anymore

From
Junio C Hamano <gitster@pobox.com>
Date
Dec 17, 2015, 18:33 UTC
Message-ID
<xmqq1talc4co.fsf@gitster.mtv.corp.google.com>
In-Reply-To
<CAP8UFD0Y252vmqxziy4Y8Bp3cw6fS0iOVFzZG+=wGt7K25V8Yg@mail.gmail.com>
Christian Couder <christian.couder@gmail.com> writes:
Show 11 quoted lines
> In the "git worktree" documentation there is:
>
> "If you move a linked working tree to another file system, or within a
> file system that does not support hard links, you need to run at least
> one git command inside the linked working tree (e.g. git status) in
> order to update its administrative files in the repository so that
> they do not get automatically pruned."
>
> It looks like git can detect when a worktree created with "git
> worktree" has been moved and I wonder if it would be possible to
> detect if the main worktree pointed to by GIT_WORK_TREE as moved.

As I personally do not find "moving a working tree" a very compelling use case, I'd be fine if cached information is not used when the actual worktree and the root of the cached untracked paths are different.

If you are going to change the in-index data of untracked cache anyway (like you attempted with 10/10 patch), I think a lot more sensible simplification may be to make the mechanism _always_ keep track of the worktree that is rooted one level above the index, and not use the cache in all other cases. That way, if you move the working tree in its entirety (i.e. $foo/{Makefile,.git/,untracked} all move to $bar/. at the same time), the untracked cache data that was in $foo/.git/index, which knew about $foo/untracked, will now know about $bar/untracked when the index is moved to $bar/.git/index automatically.

Previous: Christian CouderNext: Christian Couder
Message 17 of 18 in “Untracked cache improvements”
  1. 00/10 Untracked cache improvementsChristian Couder, Dec 15, 2015
  2. 01/10 update-index: use enum for untracked cache optionsChristian Couder, Dec 15, 2015
  3. Torsten BögershausenDec 17, 2015
  4. 02/10 update-index: add --test-untracked-cacheChristian Couder, Dec 15, 2015
  5. David TurnerDec 17, 2015
  6. 03/10 update-index: add untracked cache notificationsChristian Couder, Dec 15, 2015
  7. 04/10 update-index: move 'uc' var declarationChristian Couder, Dec 15, 2015
  8. 05/10 dir: add add_untracked_cache()Christian Couder, Dec 15, 2015
  9. 06/10 dir: add remove_untracked_cache()Christian Couder, Dec 15, 2015
  10. 07/10 dir: free untracked cache when removing itChristian Couder, Dec 15, 2015
  11. Junio C HamanoDec 15, 2015
  12. 08/10 config: add core.untrackedCacheChristian Couder, Dec 15, 2015
  13. 09/10 t7063: add tests for core.untrackedCacheChristian Couder, Dec 15, 2015
  14. 10/10 dir: do not use untracked cache ident anymoreChristian Couder, Dec 15, 2015
  15. Junio C HamanoDec 15, 2015
  16. Christian CouderDec 17, 2015
  17. Junio C HamanoDec 17, 2015
  18. Christian CouderDec 18, 2015

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.