Merge branch 'ps/stash-push-pathspec-fix'

"git stash push <pathspec>" did not work from a subdirectory at all.
Bugfix for a topic in v2.13

* ps/stash-push-pathspec-fix:
  git-stash: fix pushing stash with pathspec from subdir
This commit is contained in:
Junio C Hamano 2017-06-22 14:15:24 -07:00
commit 49a8bf2eda
2 changed files with 19 additions and 0 deletions

View File

@ -19,6 +19,7 @@ OPTIONS_SPEC=
START_DIR=$(pwd) START_DIR=$(pwd)
. git-sh-setup . git-sh-setup
require_work_tree require_work_tree
prefix=$(git rev-parse --show-prefix) || exit 1
cd_to_toplevel cd_to_toplevel
TMP="$GIT_DIR/.git-stash.$$" TMP="$GIT_DIR/.git-stash.$$"
@ -273,6 +274,8 @@ push_stash () {
shift shift
done done
eval "set $(git rev-parse --sq --prefix "$prefix" -- "$@")"
if test -n "$patch_mode" && test -n "$untracked" if test -n "$patch_mode" && test -n "$untracked"
then then
die "$(gettext "Can't use --patch and --include-untracked or --all at the same time")" die "$(gettext "Can't use --patch and --include-untracked or --all at the same time")"

View File

@ -812,6 +812,22 @@ test_expect_success 'stash -- <pathspec> stashes and restores the file' '
test_path_is_file bar test_path_is_file bar
' '
test_expect_success 'stash -- <pathspec> stashes in subdirectory' '
mkdir sub &&
>foo &&
>bar &&
git add foo bar &&
(
cd sub &&
git stash push -- ../foo
) &&
test_path_is_file bar &&
test_path_is_missing foo &&
git stash pop &&
test_path_is_file foo &&
test_path_is_file bar
'
test_expect_success 'stash with multiple pathspec arguments' ' test_expect_success 'stash with multiple pathspec arguments' '
>foo && >foo &&
>bar && >bar &&