Refactor the internal stash_create function to use a -m flag for specifying the message and -u flag to indicate whether untracked files should be added to the stash. This makes it easier to pass a pathspec argument to stash_create in the next patch. The user interface for git stash create stays the same. Signed-off-by: Thomas Gummerer <t.gummerer@xxxxxxxxx> --- Documentation/git-stash.txt | 1 + git-stash.sh | 23 +++++++++++++++++++---- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/Documentation/git-stash.txt b/Documentation/git-stash.txt index 2e9cef06e6..d93c47446a 100644 --- a/Documentation/git-stash.txt +++ b/Documentation/git-stash.txt @@ -17,6 +17,7 @@ SYNOPSIS [-u|--include-untracked] [-a|--all] [<message>]] 'git stash' clear 'git stash' create [<message>] +'git stash' create [-m <message>] [-u|--include-untracked <untracked|all>] 'git stash' store [-m|--message <message>] [-q|--quiet] <commit> DESCRIPTION diff --git a/git-stash.sh b/git-stash.sh index 8365ebba2a..e76741d37d 100755 --- a/git-stash.sh +++ b/git-stash.sh @@ -58,8 +58,23 @@ clear_stash () { } create_stash () { - stash_msg="$1" - untracked="$2" + stash_msg= + untracked= + new_style= + while test $# != 0 + do + case "$1" in + -m|--message) + shift + stash_msg=${1-"BUG: create_stash () -m requires an argument"} + ;; + -u|--include-untracked) + shift + untracked=${1-"BUG: create_stash () -u requires an argument"} + ;; + esac + shift + done git update-index -q --refresh if no_changes @@ -268,7 +283,7 @@ push_stash () { git reflog exists $ref_stash || clear_stash || die "$(gettext "Cannot initialize stash")" - create_stash "$stash_msg" $untracked + create_stash -m "$stash_msg" -u "$untracked" store_stash -m "$stash_msg" -q $w_commit || die "$(gettext "Cannot save the current status")" say "$(eval_gettext "Saved working directory and index state \$stash_msg")" @@ -667,7 +682,7 @@ clear) ;; create) shift - create_stash "$*" && echo "$w_commit" + create_stash -m "$*" && echo "$w_commit" ;; store) shift -- 2.11.0.301.g27b9849079.dirty