Re: [PATCH v3] stash: don't show "git stash push" usage on bad "git stash" usage

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

 



Ævar Arnfjörð Bjarmason  <avarab@xxxxxxxxx> writes:

> diff --git a/builtin/stash.c b/builtin/stash.c
> index 18c812bbe03..5462840a073 100644
> --- a/builtin/stash.c
> +++ b/builtin/stash.c
> @@ -1681,6 +1681,7 @@ static int push_stash(int argc, const char **argv, const char *prefix,
>  	if (argc) {
>  		force_assume = !strcmp(argv[0], "-p");
>  		argc = parse_options(argc, argv, prefix, options,
> +				     push_assumed ? git_stash_usage :
>  				     git_stash_push_usage,
>  				     PARSE_OPT_KEEP_DASHDASH);
>  	}

Yeah, "git stash" having the implicit default to "push" may have
been convenient for its original intended use case (i.e. clear the
working area with as little typing and effort as possible), but
without a care like this one, it would result in surprises.

Looks good, will queue.


> diff --git a/t/t3903-stash.sh b/t/t3903-stash.sh
> index 2c66cfbc3b7..b17c52d8807 100755
> --- a/t/t3903-stash.sh
> +++ b/t/t3903-stash.sh
> @@ -10,6 +10,25 @@ export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
>  
>  . ./test-lib.sh
>  
> +test_expect_success 'usage on cmd and subcommand invalid option' '
> +	test_expect_code 129 git stash --invalid-option 2>usage &&
> +	grep "or: git stash" usage &&
> +
> +	test_expect_code 129 git stash push --invalid-option 2>usage &&
> +	! grep "or: git stash" usage
> +'
> +
> +test_expect_success 'usage on main command -h emits a summary of subcommands' '
> +	test_expect_code 129 git stash -h >usage &&
> +	grep -F "usage: git stash list" usage &&
> +	grep -F "or: git stash show" usage
> +'
> +
> +test_expect_failure 'usage for subcommands should emit subcommand usage' '
> +	test_expect_code 129 git stash push -h >usage &&
> +	grep -F "usage: git stash [push" usage
> +'
> +
>  diff_cmp () {
>  	for i in "$1" "$2"
>  	do




[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