Skip to content

Commit

Permalink
git-stash: allow more descriptive reminder message when saving
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
gitster committed Jul 6, 2007
1 parent 37ba056 commit 9f62e18
Showing 1 changed file with 19 additions and 6 deletions.
25 changes: 19 additions & 6 deletions git-stash.sh
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ clear_stash () {
}

save_stash () {
stash_msg="$1"

if no_changes
then
echo >&2 'No local changes to save'
Expand Down Expand Up @@ -67,13 +69,19 @@ save_stash () {
die "Cannot save the current worktree state"

# 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) ||
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"
printf >&2 'Saved WIP on %s\n' "$msg"
printf >&2 'Saved "%s"\n' "$stash_msg"
}

have_stash () {
Expand Down Expand Up @@ -157,9 +165,14 @@ apply)
clear)
clear_stash
;;
save | '')
save_stash && git-reset --hard
help | usage)
usage
;;
*)
usage
if test $# -gt 0 && test "$1" = save
then
shift
fi
save_stash "$*" && git-reset --hard
;;
esac

0 comments on commit 9f62e18

Please sign in to comment.