From: Jeff King <peff@peff.net>
To: Junio C Hamano <gitster@pobox.com>
Cc: bär <crashcookie@gmail.com>,
"Jonathan Kamens" <jkamens@quantopian.com>,
"Git List" <git@vger.kernel.org>
Subject: Re: [PATCH 3/3] stash: require a clean index to apply
Date: Wed, 10 Jun 2015 15:27:35 -0400 [thread overview]
Message-ID: <20150610192734.GA23715@peff.net> (raw)
In-Reply-To: <xmqq616vl6gm.fsf@gitster.dls.corp.google.com>
On Wed, Jun 10, 2015 at 12:16:25PM -0700, Junio C Hamano wrote:
> Jeff King <peff@peff.net> writes:
>
> > So I am trying to figure out what the use case here is. Clearly the
> > above is a toy case, but why is "stash -k" followed by a quick pop
> > useful in general? Certainly I use "stash" (without "-k") and a quick
> > pop all the time, and I think that is what stash was designed for.
> >
> > The best use case I can think of is Jonathan's original: to see only the
> > staged content in the working tree, and then restore the original state.
> > But stash does not currently work very well for that, as shown above.
>
> The canonical use case for "stash -k" is to see only the content to
> be committed (for testing), commit it after testing and then pop on
> top of the committed result, which is the same as what you saw in
> the working tree and the index when you did "stash -k". I do not
> think "stash -k && stash pop" was in the design parameter when "-k"
> was added (as you demonstrated, it would not fundamentally work
> reliably depending on the differences between HEAD-Index-Worktree).
It seems like applying a stash made with "-k" is fundamentally
misdesigned in the current code. We would want to apply to the working
tree the difference between the index and the working tree, but instead
we try to apply the difference between the HEAD and the working tree.
Which is nonsensical for this use case (i.e., to apply the diff between
$stash and $stash^2, not $stash^1).
I don't think there is any way to tell that "-k" was used, though. But
even if the user knew that, I do not think there is any option to tell
"stash apply" to do it this way.
I dunno. With respect to the original patch, I am OK if we just want to
revert it. This area of stash seems a bit under-designed IMHO, but if
people were happy enough with it before, I do not think the safety
benefit from ed178ef is that great (it is not saving you from destroying
working tree content, only the index state; the individual content blobs
are still available from git-fsck).
-Peff
next prev parent reply other threads:[~2015-06-10 19:27 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-05 0:43 [PATCH 3/3] stash: require a clean index to apply Jonathan Kamens
2015-06-07 12:40 ` Jeff King
2015-06-07 12:47 ` Jeff King
2015-06-10 18:19 ` bär
2015-06-10 18:56 ` Jeff King
2015-06-10 19:16 ` Junio C Hamano
2015-06-10 19:27 ` Jeff King [this message]
2015-06-10 21:54 ` bär
2015-06-15 17:42 ` Junio C Hamano
2015-06-15 18:27 ` [PATCH] Revert "stash: require a clean index to apply" Jeff King
2015-06-15 20:11 ` Junio C Hamano
2015-06-25 21:51 ` Jonathan Kamens
[not found] ` <f06e573d-02e3-47e9-85d8-3bb6551d72f5.maildroid@localhost>
2015-06-26 0:27 ` Jeff King
2015-06-26 1:12 ` Jonathan Kamens
2015-06-26 4:03 ` Jeff King
2015-06-26 4:15 ` Junio C Hamano
-- strict thread matches above, loose matches on Subject: below --
2015-04-22 19:29 How do I resolve conflict after popping stash without adding the file to index? Jeff King
2015-04-22 19:31 ` [PATCH 3/3] stash: require a clean index to apply Jeff King
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20150610192734.GA23715@peff.net \
--to=peff@peff.net \
--cc=crashcookie@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jkamens@quantopian.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.
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 NNTP newsgroup(s).