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

Re: [PATCH 0/2] Fix git stash with skip-worktree entries

From
Johannes Schindelin <johannes.schindelin@gmx.de>
Date
Oct 27, 2019, 21:05 UTC
Message-ID
<nycvar.QRO.7.76.6.1910272203360.46@tvgsbejvaqbjf.bet>
In-Reply-To
<pull.355.git.gitgitgadget@gmail.com>
Hi Junio,
On Thu, 26 Sep 2019, Johannes Schindelin via GitGitGadget wrote:
> My colleague Dan Thompson reported a bug in a sparse checkout, where git
> stash (after resolving merge conflicts and then making up their mind to
> stash the changes instead of committing them) would "lose" files (and files
> that were not even in the sparse checkout's cone!).

I only realized _now_ that this patch has not made it anywhere; I would like to have it at least in Git for Windows v2.24.0.

Could I ask for this to still be picked up into `pu` at least, so that it does not fall into oblivion?

Thanks, Dscho

Show 40 quoted lines
>
> I first considered changing the behavior of git diff-index to simply ignore
> skip-worktree entries. But after re-reading the documentation of the
> skip-worktree bit, I became convinced that this would be incorrect a fix
> because the command really does what it advertises to do.
>
> Then, I briefly considered introducing a flag that would change the behavior
> thusly, but ended up deciding against it.
>
> The actual problem, after all, is the git update-index call and that it
> heeds the --remove (but not the --add) option for skip-worktree entries.
> "Heeds", I should say, because the idea of the skip-worktree bit really is
> documented to imply that the worktree files should be considered identical
> to their staged versions.
>
> So arguably, it could be considered a bug that git update-index --remove
> even bothers to touch skip-worktree entries. But this behavior has been in
> place for over 10 years, so I opted to introduce a new mode that does what
> git stash needs in order to fix the bug.
>
> Johannes Schindelin (2):
>   update-index: optionally leave skip-worktree entries alone
>   stash: handle staged changes in skip-worktree files correctly
>
>  Documentation/git-update-index.txt |  6 ++++++
>  builtin/stash.c                    |  5 +++--
>  builtin/update-index.c             |  6 +++++-
>  git-legacy-stash.sh                |  3 ++-
>  t/t3903-stash.sh                   | 11 +++++++++++
>  5 files changed, 27 insertions(+), 4 deletions(-)
>
>
> base-commit: 5fa0f5238b0cd46cfe7f6fa76c3f526ea98148d9
> Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-355%2Fdscho%2Ffix-stash-with-skip-worktree-v1
> Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-355/dscho/fix-stash-with-skip-worktree-v1
> Pull-Request: https://github.com/gitgitgadget/git/pull/355
> --
> gitgitgadget
>
>
Previous: Junio C HamanoNext: Junio C Hamano
Message 8 of 23 in “Fix git stash with skip-worktree entries”
  1. 0/2 Fix git stash with skip-worktree entriesJohannes Schindelin via GitGitGadget, Sep 26, 2019
  2. 1/2 update-index: optionally leave skip-worktree entries aloneJohannes Schindelin via GitGitGadget, Sep 26, 2019
  3. Junio C HamanoOct 28, 2019
  4. Johannes SchindelinOct 28, 2019
  5. Junio C HamanoOct 29, 2019
  6. 2/2 stash: handle staged changes in skip-worktree files correctlyJohannes Schindelin via GitGitGadget, Sep 26, 2019
  7. Junio C HamanoOct 28, 2019
  8. Johannes SchindelinOct 27, 2019
  9. Junio C HamanoOct 28, 2019
  10. Johannes SchindelinOct 28, 2019
  11. Junio C HamanoOct 29, 2019
  12. Johannes SchindelinOct 29, 2019
  13. 0/2 Fix git stash with skip-worktree entriesJohannes Schindelin via GitGitGadget, Oct 28, 2019
  14. 2/2 stash: handle staged changes in skip-worktree files correctlyJohannes Schindelin via GitGitGadget, Oct 28, 2019
  15. Junio C HamanoOct 30, 2019
  16. 1/2 update-index: optionally leave skip-worktree entries aloneJohannes Schindelin via GitGitGadget, Oct 28, 2019
  17. Junio C HamanoOct 30, 2019
  18. Johannes SchindelinOct 30, 2019
  19. Junio C HamanoNov 2, 2019
  20. Johannes SchindelinNov 2, 2019
  21. 0/2 Fix git stash with skip-worktree entriesJohannes Schindelin via GitGitGadget, Oct 30, 2019
  22. 1/2 update-index: optionally leave skip-worktree entries aloneJohannes Schindelin via GitGitGadget, Oct 30, 2019
  23. 2/2 stash: handle staged changes in skip-worktree files correctlyJohannes Schindelin via GitGitGadget, Oct 30, 2019

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.