Re: git-stash: RFC: Adopt the default behavior to other commands

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



El 18/12/2007, a las 15:22, Andreas Ericsson escribió:

Johannes Schindelin wrote:
Hi,
On Tue, 18 Dec 2007, Sebastian Harl wrote:
On Mon, Dec 17, 2007 at 04:31:12PM -0800, Junio C Hamano wrote:
But the original point by Sebastian hasn't been answered. He wanted to make the command list the stash without arguments.

This was discussed already in the early days of stash and there indeed was a suggestion to do so (I think I sided with that), but the users did not want it. IIRC, the argument went like: "when I say 'stash', that is because I want a quick and immediate way to stash, and I do not want a list. If I do not have to have a quick way, I would create a temporary commit on the current branch, or switch to a temporary branch and commit there."
Well, "git stash save" is just five characters more - I really don't see why this would be less comfortable (and for the really lazy people there are still aliases...). On the other hand (if "list" is the default), we'd get a more consistent interface which imho is imho more important than typing five characters less.
It's more about what you're used to. I had an alias named 'stash' long before it became a git command. And now guess how _annoying_ it would be to type "git stash<Return><Curse out loud at my mouse>git stash save<Return>".

Not nearly as annoying as losing work because of it, and you obviously
*know* what to do when you're done cursing, while clueless-newbie-X just
hops away and uses subversion.

There's not really any peril of losing work here, seeing as this should be a lossless round trip:

git stash
# oops! didn't mean to save
git stash apply

We could help clueless-newbie-X here by augmenting the save output:

  Saved "WIP on master: 8ed8a26... s"
  HEAD is now at 8ed8a26... s

As follows (or similar):

  Saved working directory and index state "WIP on master: 8ed8a26... s"
  (To restore them type "git stash apply")
  HEAD is now at 8ed8a26... s

ie. we explicitly tell them what was saved (their working directory and index state), and also how to get it back immediately if that's not what they meant to do. Something like this (no doubt will be whitespace-mangled because I'm pasting this into my email client, but it's just to demo the idea):

diff --git a/git-stash.sh b/git-stash.sh
index f16fd9c..a2f3723 100755
--- a/git-stash.sh
+++ b/git-stash.sh
@@ -99,7 +99,8 @@ save_stash () {

        git update-ref -m "$stash_msg" $ref_stash $w_commit ||
                die "Cannot save the current status"
-       printf >&2 'Saved "%s"\n' "$stash_msg"
+ printf >&2 'Saved working directory and index state "%s"\n' "$stash_msg"
+       echo >&2 '(To restore them type "git stash apply")'
 }

 have_stash () {

Cheers,
Wincent



-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux