git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] stash: end commit log with a newline

From
Junio C Hamano <gitster@pobox.com>
Date
Jul 5, 2007, 05:46 UTC
Message-ID
<7vbqere732.fsf@assigned-by-dhcp.cox.net>
In-Reply-To
<200707042324.l64NOp8I019289@mi0.bluebottle.com>
しらいしななこ <nanako3@bluebottle.com> writes:
Show 14 quoted lines
> I am sorry to join the discussion late, but I think it is much better to let
> the user give a short reminder message from the command line.  For example,
>
>   $ git stash add customized message to stash
>
> When I say "git stash list", I want to see which branch I was on when I was
> in the middle of doing something, and what that something was.  It is not
> interesting which commit on that branch I started that change from.  After
> creating a stash without a message, and then another stash with a message, I
> want to see:
>
>   $ git stash list
>   stash@{0}: On master: add customized message to stash
>   stash@{1}: WIP on master: 36e5e70... Start deprecating "git-command" in favor of "git command"

Hmph. I only recently got interested in "stash", so have not enough real-life experience to base my judgement on, but I think I'd agree with your reasoning.

Perhaps something like this?

-- >8 -- [PATCH] 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 <junkio@cox.net>
---
 git-stash.sh |   25 +++++++++++++++++++------
 1 files changed, 19 insertions(+), 6 deletions(-)
diff --git a/git-stash.sh b/git-stash.sh
index 9deda44..3d7db4a 100755
--- a/git-stash.sh
+++ b/git-stash.sh
@@ -23,6 +23,8 @@ clear_stash () {
 }
 
 save_stash () {
+	stash_msg="$1"
+
 	if no_changes
 	then
 		echo >&2 'No local changes to save'
@@ -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 "$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 () {
@@ -157,9 +165,14 @@ apply)
 clear)
 	clear_stash
 	;;
-save | '')
-	save_stash && git-reset --hard
+help)
+	usage
 	;;
 *)
-	usage
+	if test $# -gt 0 && test "$1" = save
+	then
+		shift
+	fi
+	save_stash "$*" && git-reset --hard
+	;;
 esac
-- 
Junio C Hamano
http://gitster.livejournal.com/

----------------------------------------------------------------------
No advertising message here ;-)
http://www.ohloh.net/projects/278
Next: Uwe Kleine-König
Message 1 of 4 in “Re: [PATCH] stash: end commit log with a newline”
  1. Junio C HamanoJul 5, 2007
  2. Uwe Kleine-KönigJul 5, 2007
  3. Junio C HamanoJul 5, 2007
  4. しらいしななこJul 5, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.