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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.