diff options
author | Junio C Hamano <gitster@pobox.com> | 2017-06-24 15:29:30 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2017-06-24 15:29:30 -0700 |
commit | c4db75f275327a9e0fe0b62096a6a7e5220bb041 (patch) | |
tree | f9d74474e2ce60ba05d32562bbbf87fdd81ecfc6 | |
parent | 0378c85644539a5a2e766a1230e844e6e70b8e16 (diff) | |
parent | 22fc703ec949602e9fd4e2ab0bb63dd47c2945b5 (diff) | |
download | git-c4db75f275327a9e0fe0b62096a6a7e5220bb041.tar.gz git-c4db75f275327a9e0fe0b62096a6a7e5220bb041.tar.xz |
Merge branch 'ps/stash-push-pathspec-fix' into maint
"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
-rwxr-xr-x | git-stash.sh | 3 | ||||
-rwxr-xr-x | t/t3903-stash.sh | 16 |
2 files changed, 19 insertions, 0 deletions
diff --git a/git-stash.sh b/git-stash.sh index 2fb651b2b..e7b85932d 100755 --- a/git-stash.sh +++ b/git-stash.sh @@ -19,6 +19,7 @@ OPTIONS_SPEC= START_DIR=$(pwd) . git-sh-setup require_work_tree +prefix=$(git rev-parse --show-prefix) || exit 1 cd_to_toplevel TMP="$GIT_DIR/.git-stash.$$" @@ -273,6 +274,8 @@ push_stash () { shift done + eval "set $(git rev-parse --sq --prefix "$prefix" -- "$@")" + if test -n "$patch_mode" && test -n "$untracked" then die "$(gettext "Can't use --patch and --include-untracked or --all at the same time")" diff --git a/t/t3903-stash.sh b/t/t3903-stash.sh index 3b4bed5c9..4046817d7 100755 --- a/t/t3903-stash.sh +++ b/t/t3903-stash.sh @@ -812,6 +812,22 @@ test_expect_success 'stash -- <pathspec> stashes and restores the file' ' 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' ' >foo && >bar && |