git-stash: allow more descriptive reminder message when saving

This allows you to say:

	$ git stash starting to implement X

while creating a stash, and the resulting "stash list entry
would read as:

	$ git stash list
        stash@{0}: On master: starting to implement X

instead of the default message which talks about the commit the
stash happens to be based on (hence does not have much to do
with what the stashed change is trying to do).

Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Junio C Hamano 2007-07-04 22:46:09 -07:00
parent 37ba05619c
commit 9f62e18a60

View File

@ -23,6 +23,8 @@ clear_stash () {
} }
save_stash () { save_stash () {
stash_msg="$1"
if no_changes if no_changes
then then
echo >&2 'No local changes to save' echo >&2 'No local changes to save'
@ -67,13 +69,19 @@ save_stash () {
die "Cannot save the current worktree state" die "Cannot save the current worktree state"
# create the stash # create the stash
w_commit=$(printf 'WIP on %s\n' "$msg" | if test -z "$stash_msg"
then
stash_msg=$(printf 'WIP on %s' "$msg")
else
stash_msg=$(printf 'On %s: %s' "$branch" "$stash_msg")
fi
w_commit=$(printf '%s\n' "$stash_msg" |
git commit-tree $w_tree -p $b_commit -p $i_commit) || git commit-tree $w_tree -p $b_commit -p $i_commit) ||
die "Cannot record working tree state" die "Cannot record working tree state"
git update-ref -m "WIP on $msg" $ref_stash $w_commit || git update-ref -m "$stash_msg" $ref_stash $w_commit ||
die "Cannot save the current status" die "Cannot save the current status"
printf >&2 'Saved WIP on %s\n' "$msg" printf >&2 'Saved "%s"\n' "$stash_msg"
} }
have_stash () { have_stash () {
@ -157,9 +165,14 @@ apply)
clear) clear)
clear_stash clear_stash
;; ;;
save | '') help | usage)
save_stash && git-reset --hard usage
;; ;;
*) *)
usage if test $# -gt 0 && test "$1" = save
then
shift
fi
save_stash "$*" && git-reset --hard
;;
esac esac