summaryrefslogtreecommitdiff
path: root/t/t3903-stash.sh
diff options
context:
space:
mode:
authorØystein Walle <oystwa@gmail.com>2014-01-07 09:22:15 +0100
committerJunio C Hamano <gitster@pobox.com>2014-01-07 10:51:04 -0800
commit2a07e4374c0ba6f2e991965c99b448ccb563f2fc (patch)
treec05098f54001df66386863fda2062b7a2aceda02 /t/t3903-stash.sh
parentc90d3dbe7db37f298e7ce858cfc4c494113f8945 (diff)
downloadgit-2a07e4374c0ba6f2e991965c99b448ccb563f2fc.tar.gz
stash: handle specifying stashes with $IFSow/stash-with-ifs
When trying to pop/apply a stash specified with an argument containing IFS whitespace, git-stash will throw an error: $ git stash pop 'stash@{two hours ago}' Too many revisions specified: stash@{two hours ago} This happens because word splitting is used to count non-option arguments. Make use of rev-parse's --sq option to quote the arguments for us to ensure a correct count. Add quotes where necessary. Also add a test that verifies correct behaviour. Helped-by: Thomas Rast <tr@thomasrast.ch> Signed-off-by: Øystein Walle <oystwa@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t3903-stash.sh')
-rwxr-xr-xt/t3903-stash.sh12
1 files changed, 12 insertions, 0 deletions
diff --git a/t/t3903-stash.sh b/t/t3903-stash.sh
index debda7a678..5b79b216e2 100755
--- a/t/t3903-stash.sh
+++ b/t/t3903-stash.sh
@@ -673,4 +673,16 @@ test_expect_success 'store updates stash ref and reflog' '
grep quux bazzy
'
+test_expect_success 'handle stash specification with spaces' '
+ git stash clear &&
+ echo pig >file &&
+ git stash &&
+ stamp=$(git log -g --format="%cd" -1 refs/stash) &&
+ test_tick &&
+ echo cow >file &&
+ git stash &&
+ git stash apply "stash@{$stamp}" &&
+ grep pig file
+'
+
test_done