File tree Expand file tree Collapse file tree 2 files changed +19
-7
lines changed Expand file tree Collapse file tree 2 files changed +19
-7
lines changed Original file line number Diff line number Diff line change @@ -358,7 +358,7 @@ parse_flags_and_rev()
358
358
i_tree=
359
359
u_tree=
360
360
361
- REV=$( git rev-parse --no-flags --symbolic " $@ " ) || exit 1
361
+ REV=$( git rev-parse --no-flags --symbolic --sq " $@ " ) || exit 1
362
362
363
363
FLAGS=
364
364
for opt
@@ -376,7 +376,7 @@ parse_flags_and_rev()
376
376
esac
377
377
done
378
378
379
- set -- $REV
379
+ eval set -- $REV
380
380
381
381
case $# in
382
382
0)
@@ -391,13 +391,13 @@ parse_flags_and_rev()
391
391
;;
392
392
esac
393
393
394
- REV=$( git rev-parse --quiet --symbolic --verify $1 2> /dev/null) || {
394
+ REV=$( git rev-parse --quiet --symbolic --verify " $1 " 2> /dev/null) || {
395
395
reference=" $1 "
396
396
die " $( eval_gettext " \$ reference is not valid reference" ) "
397
397
}
398
398
399
- i_commit=$( git rev-parse --quiet --verify $REV ^2 2> /dev/null) &&
400
- set -- $( git rev-parse $REV $REV ^1 $REV : $REV ^1: $REV ^2: 2> /dev/null) &&
399
+ i_commit=$( git rev-parse --quiet --verify " $REV ^2" 2> /dev/null) &&
400
+ set -- $( git rev-parse " $REV " " $REV ^1" " $REV :" " $REV ^1:" " $REV ^2:" 2> /dev/null) &&
401
401
s=$1 &&
402
402
w_commit=$1 &&
403
403
b_commit=$2 &&
@@ -408,8 +408,8 @@ parse_flags_and_rev()
408
408
test " $ref_stash " = " $( git rev-parse --symbolic-full-name " ${REV%@* } " ) " &&
409
409
IS_STASH_REF=t
410
410
411
- u_commit=$( git rev-parse --quiet --verify $REV ^3 2> /dev/null) &&
412
- u_tree=$( git rev-parse $REV ^3: 2> /dev/null)
411
+ u_commit=$( git rev-parse --quiet --verify " $REV ^3" 2> /dev/null) &&
412
+ u_tree=$( git rev-parse " $REV ^3:" 2> /dev/null)
413
413
}
414
414
415
415
is_stash_like ()
Original file line number Diff line number Diff line change @@ -673,4 +673,16 @@ test_expect_success 'store updates stash ref and reflog' '
673
673
grep quux bazzy
674
674
'
675
675
676
+ test_expect_success ' handle stash specification with spaces' '
677
+ git stash clear &&
678
+ echo pig >file &&
679
+ git stash &&
680
+ stamp=$(git log -g --format="%cd" -1 refs/stash) &&
681
+ test_tick &&
682
+ echo cow >file &&
683
+ git stash &&
684
+ git stash apply "stash@{$stamp}" &&
685
+ grep pig file
686
+ '
687
+
676
688
test_done
You can’t perform that action at this time.
0 commit comments