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

Re: [PATCH 3/3] stash: restore untracked files AFTER restoring tracked files

From
Junio C Hamano <gitster@pobox.com>
Date
Sep 8, 2021, 16:30 UTC
Message-ID
<xmqq5yvb58sr.fsf@gitster.g>
In-Reply-To
<ac8ca07481d2ed4156036c2441d10712a1b92b0e.1631065427.git.gitgitgadget@gmail.com>
"Elijah Newren via GitGitGadget" <gitgitgadget@gmail.com> writes:
Show 9 quoted lines
> From: Elijah Newren <newren@gmail.com>
>
> If a user deletes a file and places a directory of untracked files
> there, then stashes all these changes, the untracked directory of files
> cannot be restored until after the corresponding file in the way is
> removed.  So, restore changes to tracked files before restoring
> untracked files.
>
> There is no similar problem to worry about in the opposite directory,
direction, I think.

If a user deletes a directory with tracked files in it and places an untracked file at the path the directory used to be, and then stash all these changes, that would be the opposite direction, I would presume? The untracked file would be restorable only after applying the removal of the tracked files that occupied the directory.

Which would be fine if we apply the changes to the tracked ones first.
OK.

After creating a stash, we clear the working tree. How do we do that exactly, and would we have a similar problem there? We need to first remove the untracked file that currently occupies where the directory used to be in HEAD, and then create the directory and resurrect the tracked files in the directory from HEAD, in my modified example above. In the file-becomes-directory scenario, is the story the same?

Thanks.
Previous: Derrick StoleeNext: Johannes Schindelin
Message 8 of 14 in “Fix D/F issues in stash”
  1. 0/3 Fix D/F issues in stashElijah Newren via GitGitGadget, Sep 8, 2021
  2. 1/3 t3903: document a pair of directory/file bugsElijah Newren via GitGitGadget, Sep 8, 2021
  3. Junio C HamanoSep 8, 2021
  4. 2/3 stash: avoid feeding directories to update-indexElijah Newren via GitGitGadget, Sep 8, 2021
  5. Johannes SchindelinSep 8, 2021
  6. 3/3 stash: restore untracked files AFTER restoring tracked filesElijah Newren via GitGitGadget, Sep 8, 2021
  7. Derrick StoleeSep 8, 2021
  8. Junio C HamanoSep 8, 2021
  9. Johannes SchindelinSep 8, 2021
  10. Derrick StoleeSep 8, 2021
  11. 0/3 Fix D/F issues in stashElijah Newren via GitGitGadget, Sep 10, 2021
  12. 1/3 t3903: document a pair of directory/file bugsElijah Newren via GitGitGadget, Sep 10, 2021
  13. 2/3 stash: avoid feeding directories to update-indexElijah Newren via GitGitGadget, Sep 10, 2021
  14. 3/3 stash: restore untracked files AFTER restoring tracked filesElijah Newren via GitGitGadget, Sep 10, 2021

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.