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

[PATCH 4/4] cherry-pick: show commit name instead of sha1

From
Jeff King <peff@peff.net>
Date
Feb 11, 2010, 21:08 UTC
Message-ID
<20100211210815.GD9066@coredump.intra.peff.net>
In-Reply-To
<20100211210445.GA8819@coredump.intra.peff.net>
When we have a conflict, we advise the user to do:
  git commit -c $sha1

This works fine, but is unnecessarily confusing and annoying for the user to type, when:

  git commit -c $the_thing_you_called_cherry_pick_with
works just as well.
Signed-off-by: Jeff King <peff@peff.net>
---
I am pretty sure of the "works just as well". I couldn't think of a
reason why the commit name they gave would have changed between the
cherry-pick and the time they commit the resolved state.
 builtin-revert.c |   14 +++++++-------
 1 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/builtin-revert.c b/builtin-revert.c
index 77e4f4e..ad61249 100644
--- a/builtin-revert.c
+++ b/builtin-revert.c
@@ -38,6 +38,7 @@ static const char * const cherry_pick_usage[] = {
 static int edit, no_replay, no_commit, mainline, signoff;
 static enum { REVERT, CHERRY_PICK } action;
 static struct commit *commit;
+static const char *commit_name;
 static int allow_rerere_auto;
 
 static const char *me;
@@ -49,7 +50,6 @@ static void parse_args(int argc, const char **argv)
 	const char * const * usage_str =
 		action == REVERT ?  revert_usage : cherry_pick_usage;
 	unsigned char sha1[20];
-	const char *arg;
 	int noop;
 	struct option options[] = {
 		OPT_BOOLEAN('n', "no-commit", &no_commit, "don't automatically commit"),
@@ -64,10 +64,10 @@ static void parse_args(int argc, const char **argv)
 
 	if (parse_options(argc, argv, NULL, options, usage_str, 0) != 1)
 		usage_with_options(usage_str, options);
-	arg = argv[0];
 
-	if (get_sha1(arg, sha1))
-		die ("Cannot find '%s'", arg);
+	commit_name = argv[0];
+	if (get_sha1(commit_name, sha1))
+		die ("Cannot find '%s'", commit_name);
 	commit = lookup_commit_reference(sha1);
 	if (!commit)
 		exit(1);
@@ -198,7 +198,7 @@ static void set_author_ident_env(const char *message)
 			sha1_to_hex(commit->object.sha1));
 }
 
-static char *help_msg(const unsigned char *sha1)
+static char *help_msg(const char *name)
 {
 	struct strbuf helpbuf = STRBUF_INIT;
 	char *msg = getenv("GIT_CHERRY_PICK_HELP");
@@ -214,7 +214,7 @@ static char *help_msg(const unsigned char *sha1)
 		strbuf_addf(&helpbuf,
 			"  When committing, use the option '-c %s'\n"
 			"to retain authorship and message.",
-			find_unique_abbrev(sha1, DEFAULT_ABBREV));
+			name);
 	}
 	return strbuf_detach(&helpbuf, NULL);
 }
@@ -403,7 +403,7 @@ static int revert_or_cherry_pick(int argc, const char **argv)
 		if (commit_lock_file(&msg_file) < 0)
 			die ("Error wrapping up %s", defmsg);
 		fprintf(stderr, "Automatic %s failed.%s\n",
-			me, help_msg(commit->object.sha1));
+			me, help_msg(commit_name));
 		rerere(allow_rerere_auto);
 		exit(1);
 	}
-- 
1.7.0.rc2.40.g33ed2.dirty
Previous: Jeff KingNext: Jeff King
Message 14 of 22 in “git cherry-pick --continue?”
  1. Sverre RabbelierFeb 10, 2010
  2. Jeff KingFeb 10, 2010
  3. Jeff KingFeb 10, 2010
  4. Sverre RabbelierFeb 10, 2010
  5. Junio C HamanoFeb 10, 2010
  6. Junio C HamanoFeb 10, 2010
  7. Sverre RabbelierFeb 10, 2010
  8. Junio C HamanoFeb 10, 2010
  9. Sverre RabbelierFeb 10, 2010
  10. Jeff KingFeb 11, 2010
  11. 1/4 cherry-pick: rewrap advice messageJeff King, Feb 11, 2010
  12. 2/4 cherry-pick: refactor commit parsing codeJeff King, Feb 11, 2010
  13. 3/4 cherry-pick: format help message as strbufJeff King, Feb 11, 2010
  14. 4/4 cherry-pick: show commit name instead of sha1Jeff King, Feb 11, 2010
  15. Jeff KingFeb 11, 2010
  16. Jay SoffianFeb 11, 2010
  17. Junio C HamanoFeb 11, 2010
  18. Jeff KingFeb 11, 2010
  19. Jeff KingFeb 11, 2010
  20. Junio C HamanoFeb 11, 2010
  21. Jeff KingFeb 11, 2010
  22. SZEDER GáborFeb 12, 2010

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.