mirror of
https://github.com/git/git
synced 2024-10-28 19:25:47 +00:00
stash: learn to parse -m/--message like commit does
`git stash push -m foo` uses "foo" as the message for the stash. But `git stash push -m"foo"` does not parse successfully. Similarly `git stash push --message="My stash message"` also fails. The stash documentation doesn't suggest this syntax should work, but gitcli does and my fingers have learned this pattern long ago for `commit`. Teach `git stash` to parse -mFoo and --message=Foo the same as `git commit` would do. Even though it's an internal function, add similar support to create_stash() for consistency. Signed-off-by: Phil Hord <phil.hord@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
fc849d8d6b
commit
5675473fcb
2 changed files with 111 additions and 0 deletions
18
git-stash.sh
18
git-stash.sh
|
@ -76,6 +76,12 @@ create_stash () {
|
|||
shift
|
||||
stash_msg=${1?"BUG: create_stash () -m requires an argument"}
|
||||
;;
|
||||
-m*)
|
||||
stash_msg=${1#-m}
|
||||
;;
|
||||
--message=*)
|
||||
stash_msg=${1#--message=}
|
||||
;;
|
||||
-u|--include-untracked)
|
||||
shift
|
||||
untracked=${1?"BUG: create_stash () -u requires an argument"}
|
||||
|
@ -193,6 +199,12 @@ store_stash () {
|
|||
shift
|
||||
stash_msg="$1"
|
||||
;;
|
||||
-m*)
|
||||
stash_msg=${1#-m}
|
||||
;;
|
||||
--message=*)
|
||||
stash_msg=${1#--message=}
|
||||
;;
|
||||
-q|--quiet)
|
||||
quiet=t
|
||||
;;
|
||||
|
@ -251,6 +263,12 @@ push_stash () {
|
|||
test -z ${1+x} && usage
|
||||
stash_msg=$1
|
||||
;;
|
||||
-m*)
|
||||
stash_msg=${1#-m}
|
||||
;;
|
||||
--message=*)
|
||||
stash_msg=${1#--message=}
|
||||
;;
|
||||
--help)
|
||||
show_help
|
||||
;;
|
||||
|
|
|
@ -782,6 +782,99 @@ test_expect_success 'push -m shows right message' '
|
|||
test_cmp expect actual
|
||||
'
|
||||
|
||||
test_expect_success 'push -m also works without space' '
|
||||
>foo &&
|
||||
git add foo &&
|
||||
git stash push -m"unspaced test message" &&
|
||||
echo "stash@{0}: On master: unspaced test message" >expect &&
|
||||
git stash list -1 >actual &&
|
||||
test_cmp expect actual
|
||||
'
|
||||
|
||||
test_expect_success 'store -m foo shows right message' '
|
||||
git stash clear &&
|
||||
git reset --hard &&
|
||||
echo quux >bazzy &&
|
||||
git add bazzy &&
|
||||
STASH_ID=$(git stash create) &&
|
||||
git stash store -m "store m" $STASH_ID &&
|
||||
echo "stash@{0}: store m" >expect &&
|
||||
git stash list -1 >actual &&
|
||||
test_cmp expect actual
|
||||
'
|
||||
|
||||
test_expect_success 'store -mfoo shows right message' '
|
||||
git stash clear &&
|
||||
git reset --hard &&
|
||||
echo quux >bazzy &&
|
||||
git add bazzy &&
|
||||
STASH_ID=$(git stash create) &&
|
||||
git stash store -m"store mfoo" $STASH_ID &&
|
||||
echo "stash@{0}: store mfoo" >expect &&
|
||||
git stash list -1 >actual &&
|
||||
test_cmp expect actual
|
||||
'
|
||||
|
||||
test_expect_success 'store --message=foo shows right message' '
|
||||
git stash clear &&
|
||||
git reset --hard &&
|
||||
echo quux >bazzy &&
|
||||
git add bazzy &&
|
||||
STASH_ID=$(git stash create) &&
|
||||
git stash store --message="store message=foo" $STASH_ID &&
|
||||
echo "stash@{0}: store message=foo" >expect &&
|
||||
git stash list -1 >actual &&
|
||||
test_cmp expect actual
|
||||
'
|
||||
|
||||
test_expect_success 'store --message foo shows right message' '
|
||||
git stash clear &&
|
||||
git reset --hard &&
|
||||
echo quux >bazzy &&
|
||||
git add bazzy &&
|
||||
STASH_ID=$(git stash create) &&
|
||||
git stash store --message "store message foo" $STASH_ID &&
|
||||
echo "stash@{0}: store message foo" >expect &&
|
||||
git stash list -1 >actual &&
|
||||
test_cmp expect actual
|
||||
'
|
||||
|
||||
test_expect_success 'push -mfoo uses right message' '
|
||||
>foo &&
|
||||
git add foo &&
|
||||
git stash push -m"test mfoo" &&
|
||||
echo "stash@{0}: On master: test mfoo" >expect &&
|
||||
git stash list -1 >actual &&
|
||||
test_cmp expect actual
|
||||
'
|
||||
|
||||
test_expect_success 'push --message foo is synonym for -mfoo' '
|
||||
>foo &&
|
||||
git add foo &&
|
||||
git stash push --message "test message foo" &&
|
||||
echo "stash@{0}: On master: test message foo" >expect &&
|
||||
git stash list -1 >actual &&
|
||||
test_cmp expect actual
|
||||
'
|
||||
|
||||
test_expect_success 'push --message=foo is synonym for -mfoo' '
|
||||
>foo &&
|
||||
git add foo &&
|
||||
git stash push --message="test message=foo" &&
|
||||
echo "stash@{0}: On master: test message=foo" >expect &&
|
||||
git stash list -1 >actual &&
|
||||
test_cmp expect actual
|
||||
'
|
||||
|
||||
test_expect_success 'push -m shows right message' '
|
||||
>foo &&
|
||||
git add foo &&
|
||||
git stash push -m "test m foo" &&
|
||||
echo "stash@{0}: On master: test m foo" >expect &&
|
||||
git stash list -1 >actual &&
|
||||
test_cmp expect actual
|
||||
'
|
||||
|
||||
test_expect_success 'create stores correct message' '
|
||||
>foo &&
|
||||
git add foo &&
|
||||
|
|
Loading…
Reference in a new issue