* [PATCH] git-stash: Display help message if git-stash is run with wrong sub-commands
@ 2007-12-03 2:34 Kevin Leung
2007-12-03 2:48 ` Junio C Hamano
2007-12-03 6:16 ` Wayne Davison
0 siblings, 2 replies; 6+ messages in thread
From: Kevin Leung @ 2007-12-03 2:34 UTC (permalink / raw)
To: Git ML, Junio C Hamano, Nanako Shiraishi
The current git-stash behaviour is very error prone to typos. For example,
if you typed "git-stash llist", git-stash would think that you wanted to
save to a stash named "llist", but in fact, you meant "git-stash list".
Signed-off-by: Kevin Leung <kevinlsk@gmail.com>
---
git-stash.sh | 16 +++++++++-------
1 files changed, 9 insertions(+), 7 deletions(-)
diff --git a/git-stash.sh b/git-stash.sh
index 77c9421..a17cc25 100755
--- a/git-stash.sh
+++ b/git-stash.sh
@@ -1,7 +1,7 @@
#!/bin/sh
# Copyright (c) 2007, Nanako Shiraishi
-USAGE='[ | list | show | apply | clear]'
+USAGE='[ | save | list | show | apply | clear ]'
SUBDIRECTORY_OK=Yes
. git-sh-setup
@@ -195,6 +195,10 @@ show)
shift
show_stash "$@"
;;
+save)
+ shift
+ save_stash "$@" && git-reset --hard
+ ;;
apply)
shift
apply_stash "$@"
@@ -202,14 +206,12 @@ apply)
clear)
clear_stash
;;
-help | usage)
- usage
- ;;
*)
- if test $# -gt 0 && test "$1" = save
+ if test "$#" -eq "0"
then
- shift
+ save_stash && git-reset --hard
+ else
+ usage
fi
- save_stash "$*" && git-reset --hard
;;
esac
--
1.5.3.7-dirty
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH] git-stash: Display help message if git-stash is run with wrong sub-commands
2007-12-03 2:34 [PATCH] git-stash: Display help message if git-stash is run with wrong sub-commands Kevin Leung
@ 2007-12-03 2:48 ` Junio C Hamano
2007-12-03 3:36 ` Kevin Leung
2007-12-03 6:16 ` Wayne Davison
1 sibling, 1 reply; 6+ messages in thread
From: Junio C Hamano @ 2007-12-03 2:48 UTC (permalink / raw)
To: Kevin Leung; +Cc: Git ML, Junio C Hamano, Nanako Shiraishi
"Kevin Leung" <kevinlsk@gmail.com> writes:
> The current git-stash behaviour is very error prone to typos. For example,
> if you typed "git-stash llist", git-stash would think that you wanted to
> save to a stash named "llist", but in fact, you meant "git-stash list".
>
> Signed-off-by: Kevin Leung <kevinlsk@gmail.com>
Thanks. Looks good. except...
> @@ -195,6 +195,10 @@ show)
> shift
> show_stash "$@"
> ;;
> +save)
> + shift
> + save_stash "$@" && git-reset --hard
> + ;;
... this should be "$*" as it was originally spelled.
Save this script in foo.sh and run "foo.sh a b c" to see what I mean.
#!/bin/sh
foo () {
msg="$1"
echo "Foo here <$1>"
}
foo "$@"
foo "$*"
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] git-stash: Display help message if git-stash is run with wrong sub-commands
2007-12-03 2:48 ` Junio C Hamano
@ 2007-12-03 3:36 ` Kevin Leung
0 siblings, 0 replies; 6+ messages in thread
From: Kevin Leung @ 2007-12-03 3:36 UTC (permalink / raw)
To: Junio C Hamano; +Cc: Git ML, Nanako Shiraishi
The current git-stash behaviour is very error prone to typos. For example,
if you typed "git-stash llist", git-stash would think that you wanted to
save to a stash named "llist", but in fact, you meant "git-stash list".
Signed-off-by: Kevin Leung <kevinlsk@gmail.com>
---
Thanks, Junio. It should be alright now.
git-stash.sh | 16 +++++++++-------
1 files changed, 9 insertions(+), 7 deletions(-)
diff --git a/git-stash.sh b/git-stash.sh
index 77c9421..844a3e5 100755
--- a/git-stash.sh
+++ b/git-stash.sh
@@ -1,7 +1,7 @@
#!/bin/sh
# Copyright (c) 2007, Nanako Shiraishi
-USAGE='[ | list | show | apply | clear]'
+USAGE='[ | save | list | show | apply | clear ]'
SUBDIRECTORY_OK=Yes
. git-sh-setup
@@ -195,6 +195,10 @@ show)
shift
show_stash "$@"
;;
+save)
+ shift
+ save_stash "$*" && git-reset --hard
+ ;;
apply)
shift
apply_stash "$@"
@@ -202,14 +206,12 @@ apply)
clear)
clear_stash
;;
-help | usage)
- usage
- ;;
*)
- if test $# -gt 0 && test "$1" = save
+ if test "$#" -eq "0"
then
- shift
+ save_stash && git-reset --hard
+ else
+ usage
fi
- save_stash "$*" && git-reset --hard
;;
esac
--
1.5.3.7-dirty
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH] git-stash: Display help message if git-stash is run with wrong sub-commands
2007-12-03 2:34 [PATCH] git-stash: Display help message if git-stash is run with wrong sub-commands Kevin Leung
2007-12-03 2:48 ` Junio C Hamano
@ 2007-12-03 6:16 ` Wayne Davison
2007-12-03 10:25 ` Johannes Schindelin
1 sibling, 1 reply; 6+ messages in thread
From: Wayne Davison @ 2007-12-03 6:16 UTC (permalink / raw)
To: Kevin Leung; +Cc: Git ML
On Mon, Dec 03, 2007 at 10:34:05AM +0800, Kevin Leung wrote:
> +USAGE='[ | save | list | show | apply | clear ]'
It seems strange to me that git stash is using sub-sub-command words
instead of options. Would it make more sense to be more like git branch
and have a list be indicated by -l, etc.?
..wayne..
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] git-stash: Display help message if git-stash is run with wrong sub-commands
2007-12-03 6:16 ` Wayne Davison
@ 2007-12-03 10:25 ` Johannes Schindelin
2007-12-04 15:28 ` Wayne Davison
0 siblings, 1 reply; 6+ messages in thread
From: Johannes Schindelin @ 2007-12-03 10:25 UTC (permalink / raw)
To: Wayne Davison; +Cc: Kevin Leung, Git ML
Hi,
On Sun, 2 Dec 2007, Wayne Davison wrote:
> On Mon, Dec 03, 2007 at 10:34:05AM +0800, Kevin Leung wrote:
> > +USAGE='[ | save | list | show | apply | clear ]'
>
> It seems strange to me that git stash is using sub-sub-command words
> instead of options. Would it make more sense to be more like git branch
> and have a list be indicated by -l, etc.?
But those are not really options, are they? They are commands, which
exclude each other. And even if they are sub-sub-commands, why should we
not rather fix "git branch" to support a sane syntax, too?
We could even put some general support into parse-options.[ch] for
sub-commands.
Ciao,
Dscho
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] git-stash: Display help message if git-stash is run with wrong sub-commands
2007-12-03 10:25 ` Johannes Schindelin
@ 2007-12-04 15:28 ` Wayne Davison
0 siblings, 0 replies; 6+ messages in thread
From: Wayne Davison @ 2007-12-04 15:28 UTC (permalink / raw)
To: Johannes Schindelin; +Cc: Kevin Leung, Git ML
On Mon, Dec 03, 2007 at 10:25:17AM +0000, Johannes Schindelin wrote:
> But those are not really options, are they? They are commands, which
> exclude each other.
Option syntax is often used to represent exclusive commands, especially
when those commands need to be distinguished from free-form arg words.
The "git checkout" command is another example of this in git, and there
are plenty of non-git examples of such a use of option syntax around.
Such a syntax makes it easier to have a default action while still
taking a free-form arg. I personally think that using option syntax
for its behavior choices would be preferable with git stash.
..wayne..
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2007-12-04 15:29 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-12-03 2:34 [PATCH] git-stash: Display help message if git-stash is run with wrong sub-commands Kevin Leung
2007-12-03 2:48 ` Junio C Hamano
2007-12-03 3:36 ` Kevin Leung
2007-12-03 6:16 ` Wayne Davison
2007-12-03 10:25 ` Johannes Schindelin
2007-12-04 15:28 ` Wayne Davison
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).