From: Damien Robert <damien.olivier.robert@gmail.com>
To: git@vger.kernel.org
Cc: Matthieu Moy <Matthieu.Moy@grenoble-inp.fr>,
Brandon McCaig <bamccaig@gmail.com>,
Omar Othman <omar.othman@booking.com>
Subject: Re: `git stash pop` UX Problem
Date: Thu, 27 Feb 2014 12:23:18 +0100 [thread overview]
Message-ID: <20140227112317.GC1215@feanor> (raw)
Matthieu Moy wrote in message <vpqzjlf5q2z.fsf@anie.imag.fr>:
>> Maybe status should display a stash count if that count is > 0, as
>> this is part of the state of the repo.
> Maybe it would help some users, but not me for example. My main use of
> "git stash" is a safe replacement for "git reset --hard": when I want to
> discard changes, but keep them safe just in case.
> So, my stash count is almost always >0, and I don't want to hear about
> it.
Related to your comment, I adapted git-stash
https://gist.github.com/DamienRobert/9227034
to have the following (mis)features:
- There is a global --ref option that allows to specify the reference the
stash will use (by default this is refs/mystash, git-stash.sh uses
refs/stash).
This allows to differenciate between different uses of stashes: save WIP
before switching branch; keep a backup before a git reset;...
- There is a new command `git mystash dosave` that works like git stash but
does not reset the worktree afterwards. Note that `git stash create`
already does that, but it handles options differently than `git stash
save`. `git mystash dosave` can be seen as a wrapper around `git stash
create`.
The reason is that while `git stash create` is intended for scripts, `git
mystash dosave` is intended for the UI. One example of when we don't want
to drop the worktree is when we want to do a `git checkout -m -- paths`
but we want to save the current state in case the merge has conflicts.
- `git stash branch` pops the stash once the branch is created. I did not
like this feature so `git mystash branch` does not pop the stash; use `git
mystash popbranch` to have the original meaning of `git stash branch`.
- `git mystash save` (and `git stash dosave`) has a new option
`--on-branch` which stores the stash onto the current branch rather than
in $ref_stash. The idea is that when I use `git stash` for a WIP, then
when I come back to the original branch I always forget that I had a
stash for this branch, and if there were several WIP in between it can be
hard to remember which stash to apply. With `--on-branch`, when I come
back to the original branch I am now on the stash, and I know I just need
to apply it. For that `git mystash apply` (or `git mystash pop`) also has
a `--on-branch` option that tells it to use the stash on the current
branch.
- `git mystash info` gives informations about a stash.
So obviously not all of these would be good for inclusion into git, but
maybe some of them would be somewhat worth it. When I have the time I'll
try to write tests and send proper patches.
--
Damien Robert
next reply other threads:[~2014-02-27 11:23 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-02-27 11:23 Damien Robert [this message]
-- strict thread matches above, loose matches on Subject: below --
2014-02-24 8:33 `git stash pop` UX Problem Omar Othman
2014-02-24 8:32 Omar Othman
2014-02-24 16:04 ` Brandon McCaig
2014-02-24 16:21 ` Matthieu Moy
2014-02-25 12:14 ` Holger Hellmuth
2014-02-25 12:33 ` Matthieu Moy
2014-02-25 13:02 ` Omar Othman
2014-02-25 19:12 ` Junio C Hamano
2014-02-25 20:48 ` Stephen Leake
2014-02-25 22:20 ` Junio C Hamano
2014-02-27 13:18 ` Stephen Leake
2014-02-26 7:37 ` Omar Othman
2014-02-26 15:17 ` Theodore Ts'o
2014-02-25 23:50 ` brian m. carlson
2014-02-26 7:34 ` Omar Othman
2014-02-26 0:39 ` Simon Ruderich
2014-02-27 13:22 ` Stephen Leake
2014-02-25 13:06 ` Omar Othman
2014-02-25 13:15 ` Matthieu Moy
2014-02-25 14:12 ` Omar Othman
2014-02-25 15:25 ` Matthieu Moy
2014-02-25 20:52 ` Stephen Leake
2014-02-25 22:23 ` Junio C Hamano
2014-02-26 10:24 ` Stefan Haller
2014-02-26 10:45 ` Matthieu Moy
2014-02-28 2:57 ` Stephen Leake
2014-02-28 4:50 ` Brandon McCaig
2014-02-28 15:12 ` Stephen Leake
2014-02-28 15:42 ` Matthieu Moy
2014-02-28 17:27 ` Stephen Leake
2014-02-28 19:45 ` Matthieu Moy
2014-03-01 8:41 ` Stephen Leake
2014-02-28 16:02 ` David Kastrup
2014-02-28 17:45 ` Stephen Leake
2014-02-28 19:39 ` Matthieu Moy
2014-02-28 17:45 ` Junio C Hamano
2014-03-01 8:47 ` Stephen Leake
2014-02-26 7:28 ` Omar Othman
2014-02-26 8:27 ` Matthieu Moy
2014-02-26 19:36 ` Junio C Hamano
2014-02-26 19:46 ` Matthieu Moy
2014-02-26 20:20 ` Junio C Hamano
2014-02-26 20:33 ` David Kastrup
2014-02-26 22:17 ` Junio C Hamano
2014-02-27 0:19 ` David Kastrup
2014-02-28 3:00 ` Stephen Leake
2014-02-27 13:25 ` Stephen Leake
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=20140227112317.GC1215@feanor \
--to=damien.olivier.robert@gmail.com \
--cc=Matthieu.Moy@grenoble-inp.fr \
--cc=bamccaig@gmail.com \
--cc=git@vger.kernel.org \
--cc=omar.othman@booking.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).