diff options
| -rw-r--r-- | diff.c | 2 | ||||
| -rwxr-xr-x | git-stash.sh | 7 | ||||
| -rw-r--r-- | sha1_name.c | 3 | ||||
| -rwxr-xr-x | t/t3903-stash.sh | 9 | 
4 files changed, 17 insertions, 4 deletions
@@ -2855,6 +2855,8 @@ int diff_opt_parse(struct diff_options *options, const char **av, int ac)  		;  	else if (!prefixcmp(arg, "--output=")) {  		options->file = fopen(arg + strlen("--output="), "w"); +		if (!options->file) +			die_errno("Could not open '%s'", arg + strlen("--output="));  		options->close_file = 1;  	} else  		return 0; diff --git a/git-stash.sh b/git-stash.sh index 3a0685f189..2d69196393 100755 --- a/git-stash.sh +++ b/git-stash.sh @@ -221,6 +221,7 @@ show_stash () {  }  apply_stash () { +	applied_stash=  	unstash_index=  	while test $# != 0 @@ -242,6 +243,9 @@ apply_stash () {  	if test $# = 0  	then  		have_stash || die 'Nothing to apply' +		applied_stash="$ref_stash@{0}" +	else +		applied_stash="$*"  	fi  	# stash records the work tree, and is a merge between the @@ -415,8 +419,7 @@ pop)  	shift  	if apply_stash "$@"  	then -		test -z "$unstash_index" || shift -		drop_stash "$@" +		drop_stash "$applied_stash"  	fi  	;;  branch) diff --git a/sha1_name.c b/sha1_name.c index 04fb3b8fed..7013c53ca6 100644 --- a/sha1_name.c +++ b/sha1_name.c @@ -278,8 +278,7 @@ int dwim_ref(const char *str, int len, unsigned char *sha1, char **ref)  				*ref = xstrdup(r);  			if (!warn_ambiguous_refs)  				break; -		} else if ((flag & REF_ISSYMREF) && -			   (len != 4 || strcmp(str, "HEAD"))) +		} else if ((flag & REF_ISSYMREF) && strcmp(fullref, "HEAD"))  			warning("ignoring dangling symref %s.", fullref);  	}  	free(last_branch); diff --git a/t/t3903-stash.sh b/t/t3903-stash.sh index 5514f74b30..476e5ec038 100755 --- a/t/t3903-stash.sh +++ b/t/t3903-stash.sh @@ -194,6 +194,15 @@ test_expect_success 'pop -q is quiet' '  	test ! -s output.out  ' +test_expect_success 'pop -q --index works and is quiet' ' +	echo foo > file && +	git add file && +	git stash save --quiet && +	git stash pop -q --index > output.out 2>&1 && +	test foo = "$(git show :file)" && +	test ! -s output.out +' +  test_expect_success 'drop -q is quiet' '  	git stash &&  	git stash drop -q > output.out 2>&1 &&  | 
