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
Christian Couder <christian.couder@gmail.com>
Date
Dec 17, 2015, 16:54 UTC
Message-ID
<CAP8UFD0Y252vmqxziy4Y8Bp3cw6fS0iOVFzZG+=wGt7K25V8Yg@mail.gmail.com>
In-Reply-To
<xmqqd1u7fq5r.fsf@gitster.mtv.corp.google.com>
On Tue, Dec 15, 2015 at 8:49 PM, Junio C Hamano <gitster@pobox.com> wrote:
Show 16 quoted lines
> Christian Couder <christian.couder@gmail.com> writes:
>
>> +/*
>> + * We used to save the location of the work tree and the kernel version,
>> + * but it was not a good idea, so we now just save an empty string.
>> + */
>
> I do agree that storing the kernel version (or hostname or whatever
> specific to the machine) was not a good idea.  I however suspect
> that you must save and check the location of the working tree,
> though, for correctness.  If you use one GIT_DIR and GIT_WORK_TREE
> to do "git add" or whatever, and then use the same GIT_DIR but a
> different GIT_WORK_TREE, you should be able to notice that a
> directory D in the old GIT_WORK_TREE whose modification time you
> recorded is different from the directory D with the same name but in
> the new GIT_WORK_TREE, no?

Yeah, if people use many worktrees made using "git worktree", the code above should be fine because there is one index per worktree, but if they just use one GIT_DIR with many GIT_WORK_TREE then there will be only one index used.

I am wondering about the case when the worktree is moved and then GIT_WORK_TREE is changed to reflect the new path were the worktree has been moved.

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.

Previous: Junio C HamanoNext: Junio C Hamano
Message 16 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.