All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bruno Haible <bruno@clisp.org>
To: git@vger.kernel.org
Cc: Benoit SIGOURE <tsuna@lrde.epita.fr>, Eric Blake <ebb9@byu.net>
Subject: making "git stash" safer to use
Date: Wed, 3 Oct 2007 23:31:41 +0200	[thread overview]
Message-ID: <200710032331.41385.bruno@clisp.org> (raw)
In-Reply-To: <47023699.3080606@byu.net>

Hi,

Through a simple typo I lost modifications to 20 files:

> >>>     $ git stash
> >>>     $ git pull
> >>>     $ git stash apply
> >>>     $ git stash clean              # typo!
> >>>     $ git stash clear              # fatal correction to typo!

It is just too easy to lose your modifications by using "git stash".

Eric Blake further says:

> While we're at it, I wish 'git stash clear' would take an optional
> argument that says which stash(es) to clear, rather than blindly clearing
> the entire stash.

It would help if git would store which of the stashes were applied since
they were created and which were not. A stash that was not yet applied must
be considered "precious", whereas a stash that was applied is redundant,
right?

According these lines, how about
  1) changing "git stash clear" to remove only the redundant stashes,
     (or alternatively: let it fail if there is at least one precious stash),
  2) adding an option -f, so that "git stash -f clear" clears all stashes,
     including the precious ones.

The rationale is that humans are bad at remembering the state of something.
Therefore instead of having a command that is commonly used in one state
and dangerous in the other state, better have two different commands - one
for the common case, and one for the dangerous one. Like "rm" and "rm -f".

Bruno

  reply	other threads:[~2007-10-03 21:32 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <200709301421.52192.bruno@clisp.org>
     [not found] ` <200710020347.43733.bruno@clisp.org>
     [not found]   ` <4AD64749-F4A3-4A61-B1EE-D12523293661@lrde.epita.fr>
     [not found]     ` <200710021350.54625.bruno@clisp.org>
2007-10-02 12:16       ` git: avoiding merges, rebasing Eric Blake
2007-10-03 21:31         ` Bruno Haible [this message]
2007-10-03 21:36           ` making "git stash" safer to use Junio C Hamano
2007-10-04  8:40           ` Joachim B Haga
2007-10-04 20:59             ` David Kastrup
2007-10-19 13:37         ` stash clear, was Re: git: avoiding merges, rebasing Johannes Schindelin
2007-10-23  8:55           ` Miles Bader
     [not found]       ` <6C9F1445-8826-4E6F-A10C-290A57A4C826@lrde.epita.fr>
2007-10-03 23:01         ` Bruno Haible
     [not found] ` <46FF99E2.8050605@byu.net>
     [not found]   ` <200709302141.25597.bruno@clisp.org>
     [not found]     ` <C64152A3-A5A6-4320-864C-E78E3A60C8E6@lrde.epita.fr>
2007-10-08 13:16       ` Benoit SIGOURE
2007-10-08 13:17       ` Benoit SIGOURE
2007-10-09 10:43         ` Johannes Schindelin
2007-10-09 18:06           ` Benoit SIGOURE
2007-10-09 12:03         ` Bruno Haible
2007-10-09 18:19           ` GNU-style ChangeLog merge driver for Git (was: Re: git: avoiding merges, rebasing) Benoit SIGOURE
2007-10-09 19:38             ` GNU-style ChangeLog merge driver for Git Bruno Haible

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=200710032331.41385.bruno@clisp.org \
    --to=bruno@clisp.org \
    --cc=ebb9@byu.net \
    --cc=git@vger.kernel.org \
    --cc=tsuna@lrde.epita.fr \
    /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.