Thread (1 message) 1 message, 1 author, 2016-06-15

Re: `git stash pop` UX Problem

From: Stephen Leake <hidden>
Date: 2016-06-15 23:00:08

Junio C Hamano [off-list ref] writes:
Stephen Leake [off-list ref] writes:
quoted
Matthieu Moy [off-list ref] writes:
quoted
lists@haller-berlin.de (Stefan Haller) writes:
quoted
Your intention was clearly to drop the stash, it just wasn't dropped
because of the conflict. Dropping it automatically once the conflict
is resolved would be nice.
Your intention when you ran "git stash pop", yes. Your intention when
you ran "git add", I call that guessing.
You might be adding other files for other reasons. But if you add a file
that does resolve a conflict caused by 'git stash pop', it is not
guessing.
The only thing you know for sure is that the user has consumed _one_
part of the stashed change, no?  What if the stash had changes for
more than one path?
Count the unmerged paths in the index; when the count is zero, all
conflicts are resolved.

paths in the stash that had no conflicts are already in the index.

So _if_ there is nothing going on except finishing the stash pop, an
unmerged path count of zero means you are done with the stash, and it
can be dropped.
At the time of "git add $path", can you reliably tell if the
conflict to the $path the user is resolving came from a previous
"git stash pop", not from any other mergy operations, e.g. "git
stash apply" or "git apply -3"?
This is the real problem. I can impose a rule on my team of "don't do
more than one merge at a time" by implementing that in the front-end,
but git can't assume that.

-- 
-- Stephe
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help