Skip to content

Commit 714485c

Browse files
committed
Merge branch 'ph/stash-save-m-option-fix'
In addition to "git stash -m message", the command learned to accept "git stash -mmessage" form. * ph/stash-save-m-option-fix: stash: learn to parse -m/--message like commit does
2 parents 79bafd2 + 5675473 commit 714485c

File tree

2 files changed

+111
-0
lines changed

2 files changed

+111
-0
lines changed

git-stash.sh

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,12 @@ create_stash () {
7676
shift
7777
stash_msg=${1?"BUG: create_stash () -m requires an argument"}
7878
;;
79+
-m*)
80+
stash_msg=${1#-m}
81+
;;
82+
--message=*)
83+
stash_msg=${1#--message=}
84+
;;
7985
-u|--include-untracked)
8086
shift
8187
untracked=${1?"BUG: create_stash () -u requires an argument"}
@@ -193,6 +199,12 @@ store_stash () {
193199
shift
194200
stash_msg="$1"
195201
;;
202+
-m*)
203+
stash_msg=${1#-m}
204+
;;
205+
--message=*)
206+
stash_msg=${1#--message=}
207+
;;
196208
-q|--quiet)
197209
quiet=t
198210
;;
@@ -251,6 +263,12 @@ push_stash () {
251263
test -z ${1+x} && usage
252264
stash_msg=$1
253265
;;
266+
-m*)
267+
stash_msg=${1#-m}
268+
;;
269+
--message=*)
270+
stash_msg=${1#--message=}
271+
;;
254272
--help)
255273
show_help
256274
;;

t/t3903-stash.sh

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -804,6 +804,99 @@ test_expect_success 'push -m shows right message' '
804804
test_cmp expect actual
805805
'
806806

807+
test_expect_success 'push -m also works without space' '
808+
>foo &&
809+
git add foo &&
810+
git stash push -m"unspaced test message" &&
811+
echo "stash@{0}: On master: unspaced test message" >expect &&
812+
git stash list -1 >actual &&
813+
test_cmp expect actual
814+
'
815+
816+
test_expect_success 'store -m foo shows right message' '
817+
git stash clear &&
818+
git reset --hard &&
819+
echo quux >bazzy &&
820+
git add bazzy &&
821+
STASH_ID=$(git stash create) &&
822+
git stash store -m "store m" $STASH_ID &&
823+
echo "stash@{0}: store m" >expect &&
824+
git stash list -1 >actual &&
825+
test_cmp expect actual
826+
'
827+
828+
test_expect_success 'store -mfoo shows right message' '
829+
git stash clear &&
830+
git reset --hard &&
831+
echo quux >bazzy &&
832+
git add bazzy &&
833+
STASH_ID=$(git stash create) &&
834+
git stash store -m"store mfoo" $STASH_ID &&
835+
echo "stash@{0}: store mfoo" >expect &&
836+
git stash list -1 >actual &&
837+
test_cmp expect actual
838+
'
839+
840+
test_expect_success 'store --message=foo shows right message' '
841+
git stash clear &&
842+
git reset --hard &&
843+
echo quux >bazzy &&
844+
git add bazzy &&
845+
STASH_ID=$(git stash create) &&
846+
git stash store --message="store message=foo" $STASH_ID &&
847+
echo "stash@{0}: store message=foo" >expect &&
848+
git stash list -1 >actual &&
849+
test_cmp expect actual
850+
'
851+
852+
test_expect_success 'store --message foo shows right message' '
853+
git stash clear &&
854+
git reset --hard &&
855+
echo quux >bazzy &&
856+
git add bazzy &&
857+
STASH_ID=$(git stash create) &&
858+
git stash store --message "store message foo" $STASH_ID &&
859+
echo "stash@{0}: store message foo" >expect &&
860+
git stash list -1 >actual &&
861+
test_cmp expect actual
862+
'
863+
864+
test_expect_success 'push -mfoo uses right message' '
865+
>foo &&
866+
git add foo &&
867+
git stash push -m"test mfoo" &&
868+
echo "stash@{0}: On master: test mfoo" >expect &&
869+
git stash list -1 >actual &&
870+
test_cmp expect actual
871+
'
872+
873+
test_expect_success 'push --message foo is synonym for -mfoo' '
874+
>foo &&
875+
git add foo &&
876+
git stash push --message "test message foo" &&
877+
echo "stash@{0}: On master: test message foo" >expect &&
878+
git stash list -1 >actual &&
879+
test_cmp expect actual
880+
'
881+
882+
test_expect_success 'push --message=foo is synonym for -mfoo' '
883+
>foo &&
884+
git add foo &&
885+
git stash push --message="test message=foo" &&
886+
echo "stash@{0}: On master: test message=foo" >expect &&
887+
git stash list -1 >actual &&
888+
test_cmp expect actual
889+
'
890+
891+
test_expect_success 'push -m shows right message' '
892+
>foo &&
893+
git add foo &&
894+
git stash push -m "test m foo" &&
895+
echo "stash@{0}: On master: test m foo" >expect &&
896+
git stash list -1 >actual &&
897+
test_cmp expect actual
898+
'
899+
807900
test_expect_success 'create stores correct message' '
808901
>foo &&
809902
git add foo &&

0 commit comments

Comments
 (0)