git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [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).