Merge branch 'ow/stash-with-ifs' into maint
The implementation of 'git stash $cmd "stash@{...}"' did not quote the stash argument properly and left it split at IFS whitespace. * ow/stash-with-ifs: stash: handle specifying stashes with $IFS
This commit is contained in:
commit
a74a682b55
14
git-stash.sh
14
git-stash.sh
@ -358,7 +358,7 @@ parse_flags_and_rev()
|
|||||||
i_tree=
|
i_tree=
|
||||||
u_tree=
|
u_tree=
|
||||||
|
|
||||||
REV=$(git rev-parse --no-flags --symbolic "$@") || exit 1
|
REV=$(git rev-parse --no-flags --symbolic --sq "$@") || exit 1
|
||||||
|
|
||||||
FLAGS=
|
FLAGS=
|
||||||
for opt
|
for opt
|
||||||
@ -376,7 +376,7 @@ parse_flags_and_rev()
|
|||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
set -- $REV
|
eval set -- $REV
|
||||||
|
|
||||||
case $# in
|
case $# in
|
||||||
0)
|
0)
|
||||||
@ -391,13 +391,13 @@ parse_flags_and_rev()
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
REV=$(git rev-parse --quiet --symbolic --verify $1 2>/dev/null) || {
|
REV=$(git rev-parse --quiet --symbolic --verify "$1" 2>/dev/null) || {
|
||||||
reference="$1"
|
reference="$1"
|
||||||
die "$(eval_gettext "\$reference is not valid reference")"
|
die "$(eval_gettext "\$reference is not valid reference")"
|
||||||
}
|
}
|
||||||
|
|
||||||
i_commit=$(git rev-parse --quiet --verify $REV^2 2>/dev/null) &&
|
i_commit=$(git rev-parse --quiet --verify "$REV^2" 2>/dev/null) &&
|
||||||
set -- $(git rev-parse $REV $REV^1 $REV: $REV^1: $REV^2: 2>/dev/null) &&
|
set -- $(git rev-parse "$REV" "$REV^1" "$REV:" "$REV^1:" "$REV^2:" 2>/dev/null) &&
|
||||||
s=$1 &&
|
s=$1 &&
|
||||||
w_commit=$1 &&
|
w_commit=$1 &&
|
||||||
b_commit=$2 &&
|
b_commit=$2 &&
|
||||||
@ -408,8 +408,8 @@ parse_flags_and_rev()
|
|||||||
test "$ref_stash" = "$(git rev-parse --symbolic-full-name "${REV%@*}")" &&
|
test "$ref_stash" = "$(git rev-parse --symbolic-full-name "${REV%@*}")" &&
|
||||||
IS_STASH_REF=t
|
IS_STASH_REF=t
|
||||||
|
|
||||||
u_commit=$(git rev-parse --quiet --verify $REV^3 2>/dev/null) &&
|
u_commit=$(git rev-parse --quiet --verify "$REV^3" 2>/dev/null) &&
|
||||||
u_tree=$(git rev-parse $REV^3: 2>/dev/null)
|
u_tree=$(git rev-parse "$REV^3:" 2>/dev/null)
|
||||||
}
|
}
|
||||||
|
|
||||||
is_stash_like()
|
is_stash_like()
|
||||||
|
@ -673,4 +673,16 @@ test_expect_success 'store updates stash ref and reflog' '
|
|||||||
grep quux bazzy
|
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
|
test_done
|
||||||
|
Loading…
Reference in New Issue
Block a user