Re: `git stash pop` UX Problem
From: Omar Othman <hidden>
Date: 2016-06-15 23:00:00
quoted
[omar_othman main (trunk|MERGING*)]$ git add path/to/file.txt [omar_othman main (trunk*)]$ Note how the status message has changed to show that git is now happy. It is at that moment that the stash reference should be droppedDropping the stash on a "git add" operation would be really, really weird...quoted
(or the user (somehow) is notified to do that herself if desired), because this means that the popping operation has succeeded.But how would you expect to "be notified"?
Answering the last question, your previous comments are fine with me:
quoted
If there's any change that should be made it should be purely providing more detailed instructions to the user about how to deal with it.Yes, there may be room for improvement, but that does not seem so easy. Today, we have: $ git stash pop Auto-merging foo.txt CONFLICT (content): Merge conflict in foo.txt $ git status On branch master Unmerged paths: (use "git reset HEAD <file>..." to unstage) (use "git add <file>..." to mark resolution) both modified: foo.txt => The advices shown here are OK. Then: $ git add foo.txt $ git status On branch master Changes to be committed: (use "git reset HEAD <file>..." to unstage) modified: foo.txt => here, "git status" could have hinted the user "you may now run 'git stash drop' if you are satisfied with your merge".
Though I don't know why you think this is important:
Now, the real question is: when would Git stop showing this advice. I don't see a real way to answer this, and I'd rather avoid doing just a guess.
If it is really annoying for the user, we can just have a configuration parameter to switch this message on/off. I don't know whether git has such customizations (in general) currently. This is very useful (maybe we can agree on wording later):
One easy thing to do OTOH would be to show a hint at the end of "git stash pop"'s output, like $ git stash pop Auto-merging foo.txt CONFLICT (content): Merge conflict in foo.txt 'stash pop' failed. Please resolve the conflicts manually. The stash was not dropped in case you need to restart the operation. When you are done resolving the merge, you may run the following to drop the stash reference: git stash drop