git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: "Elijah Newren via GitGitGadget" <gitgitgadget@gmail.com>
Cc: git@vger.kernel.org, Elijah Newren <newren@gmail.com>
Subject: Re: [PATCH 3/3] stash: restore untracked files AFTER restoring tracked files
Date: Wed, 08 Sep 2021 09:30:44 -0700	[thread overview]
Message-ID: <xmqq5yvb58sr.fsf@gitster.g> (raw)
In-Reply-To: <ac8ca07481d2ed4156036c2441d10712a1b92b0e.1631065427.git.gitgitgadget@gmail.com> (Elijah Newren via GitGitGadget's message of "Wed, 08 Sep 2021 01:43:46 +0000")

"Elijah Newren via GitGitGadget" <gitgitgadget@gmail.com> writes:

> 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.

  parent reply	other threads:[~2021-09-08 16:30 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-08  1:43 [PATCH 0/3] Fix D/F issues in stash Elijah Newren via GitGitGadget
2021-09-08  1:43 ` [PATCH 1/3] t3903: document a pair of directory/file bugs Elijah Newren via GitGitGadget
2021-09-08 16:19   ` Junio C Hamano
2021-09-08  1:43 ` [PATCH 2/3] stash: avoid feeding directories to update-index Elijah Newren via GitGitGadget
2021-09-08  8:02   ` Johannes Schindelin
2021-09-08  1:43 ` [PATCH 3/3] stash: restore untracked files AFTER restoring tracked files Elijah Newren via GitGitGadget
2021-09-08 13:15   ` Derrick Stolee
2021-09-08 16:30   ` Junio C Hamano [this message]
2021-09-08  8:04 ` [PATCH 0/3] Fix D/F issues in stash Johannes Schindelin
2021-09-08 13:15   ` Derrick Stolee
2021-09-10 10:29 ` [PATCH v2 " Elijah Newren via GitGitGadget
2021-09-10 10:29   ` [PATCH v2 1/3] t3903: document a pair of directory/file bugs Elijah Newren via GitGitGadget
2021-09-10 10:29   ` [PATCH v2 2/3] stash: avoid feeding directories to update-index Elijah Newren via GitGitGadget
2021-09-10 10:29   ` [PATCH v2 3/3] stash: restore untracked files AFTER restoring tracked files Elijah Newren via GitGitGadget

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=xmqq5yvb58sr.fsf@gitster.g \
    --to=gitster@pobox.com \
    --cc=git@vger.kernel.org \
    --cc=gitgitgadget@gmail.com \
    --cc=newren@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).