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

Re: [PATCH 2/2] Teach commit about CHERRY_PICK_HEAD

From
Junio C Hamano <gitster@pobox.com>
Date
Feb 16, 2011, 21:07 UTC
Message-ID
<7vpqqrit8r.fsf@alter.siamese.dyndns.org>
In-Reply-To
<1297850903-65038-3-git-send-email-jaysoffian@gmail.com>
Jay Soffian <jaysoffian@gmail.com> writes:
> If the user wishes to reset authorship, that must now be done explicitly
> via --reset-author.

This is not a new requirement, is it? Even "commit -c $that_commit" before the previous "commit -c CHERRY_PICK_HEAD" does use the original, no?

I think the changed code is _MUCH_ easier to follow compared to the previous round; the only thing the reader needs to keep in mind is that the most of the change essentially is "s/in_merge/whence != FROM_COMMIT/" and making that work.

> * We remove a unused import from revert.c
Micronit: s/import/include/.
Show 9 quoted lines
> @@ -766,7 +802,7 @@ static int prepare_to_commit(const char *index_file, const char *prefix,
>  
>  	fclose(fp);
>  
> -	if (!commitable && !in_merge && !allow_empty &&
> +	if (!commitable && whence != FROM_MERGE && !allow_empty &&
>  	    !(amend && is_a_merge(head_sha1))) {
>  		run_status(stdout, index_file, prefix, 0, s);
>  		if (amend)

The original says that we reject an attempt to record a no-change commit when the user is making his own commit without an explicit --allow-empty request. Should cherry-pick change this?

"git cherry-pick $a_no_change_commit" does not cause conflicts but it does fail with "nothing added to commit". If you said "whence == FROM_COMMIT" here, you would end up allowing "git commit" following such a failure to commit without --allow-empty, and that inconsistency is to be avoided (note that I didn't check if you leave CHERRY_PICK_HEAD behind to trigger this codepath when this happens).

On the other hand, when the earlier cherry-pick did fail with conflict, but the resolution ended up to be a no-change commit, you would not blindly want to record the result as a no-change commit, either.

So I think the above is the right thing to do, but we probably need a bit of in-code comment to describe why we say "whence != FROM_MERGE" here.

Thanks.
Previous: Jay SoffianNext: Jay Soffian
Message 13 of 18 in “CHERRY_PICK_HEAD”
  1. 0/2 CHERRY_PICK_HEADJay Soffian, Feb 16, 2011
  2. 1/2 Introduce CHERRY_PICK_HEADJay Soffian, Feb 16, 2011
  3. Nguyen Thai Ngoc DuyFeb 16, 2011
  4. Jay SoffianFeb 16, 2011
  5. Introduce CHERRY_PICK_HEADJay Soffian, Feb 16, 2011
  6. Jay SoffianFeb 16, 2011
  7. Jonathan NiederFeb 16, 2011
  8. Jay SoffianFeb 16, 2011
  9. Jonathan NiederFeb 16, 2011
  10. Junio C HamanoFeb 17, 2011
  11. Jonathan NiederFeb 17, 2011
  12. 2/2 Teach commit about CHERRY_PICK_HEADJay Soffian, Feb 16, 2011
  13. Junio C HamanoFeb 16, 2011
  14. Jay SoffianFeb 16, 2011
  15. 5/2 bash: teach __git_ps1 about CHERRY_PICK_HEADJonathan Nieder, Feb 16, 2011
  16. Junio C HamanoFeb 16, 2011
  17. Jonathan NiederFeb 16, 2011
  18. Jay SoffianFeb 17, 2011

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.