Re: [RFC] stash --continue
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- Jan 18, 2017, 16:34 UTC
- Message-ID
- <alpine.DEB.2.20.1701181725130.3469@virtualbox>
- In-Reply-To
- <d5456165-bdf2-e9e7-117f-aeab0ff4b417@xiplink.com>
Hi Marc,
On Wed, 18 Jan 2017, Marc Branchaud wrote:
Show 23 quoted lines
> On 2017-01-16 05:54 AM, Johannes Schindelin wrote: > > > On Mon, 16 Jan 2017, Stephan Beyer wrote: > > > > > a git-newbie-ish co-worker uses git-stash sometimes. Last time he > > > used "git stash pop", he got into a merge conflict. After he > > > resolved the conflict, he did not know what to do to get the > > > repository into the wanted state. In his case, it was only "git add > > > <resolved files>" followed by a "git reset" and a "git stash drop", > > > but there may be more involved cases when your index is not clean > > > before "git stash pop" and you want to have your index as before. > > > > > > This led to the idea to have something like "git stash > > > --continue"[1] > > > > More like "git stash pop --continue". Without the "pop" command, it > > does not make too much sense. > > Why not? git should be able to remember what stash command created the > conflict. Why should I have to? Maybe the fire alarm goes off right when I > run the stash command, and by the time I get back to it I can't remember > which operation I did. It would be nice to be able to tell git to "just > finish off (or abort) the stash operation, whatever it was".
That reeks of a big potential for confusion.
Imagine for example a total Git noob who calls `git stash list`, scrolls two pages down, then hits `q` by mistake. How would you explain to that user that `git stash --continue` does not continue showing the list at the third page?
Even worse: `git stash` (without arguments) defaults to the `save` operation, so any user who does not read the documentation (and who does?) would assume that `git stash --continue` *also* implies `save`.
If that was not enough, there would still be the overall design of Git's user interface. You can call it confusing, inconsistent, with a lot of room for improvement, and you would be correct. But none of Git's commands has a `--continue` option that remembers the latest subcommand and continues that. To introduce that behavior in `git stash` would disimprove the situation.
With every new feature, it is not enough to consider its benefits. You always have to take the potential fallout into account, too.
At least `git stash pop --continue` would be consistent with all other `--continue` options in Git that I can think of...
Ciao, Johannes