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

Re: [PATCH] Fixes git-cherry algorithmic flaws

From
Junio C Hamano <junkio@cox.net>
Date
Sep 24, 2006, 01:49 UTC
Message-ID
<7virjem3tp.fsf@assigned-by-dhcp.cox.net>
In-Reply-To
<20060924000051.GI20017@pasky.or.cz>
Petr Baudis <pasky@suse.cz> writes:
Show 10 quoted lines
> Dear diary, on Mon, Aug 07, 2006 at 12:30:13PM CEST, I got a letter
> where Ilpo Järvinen <ilpo.jarvinen@helsinki.fi> said that...
>> Old algorithm:
>>         - printed IDs of identical patches with minus (-) sign; they
>> 	  should not be printed at all
>>         - did not print anything from the changes in the upstream
>> 
>> Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
>
> Ping? Is this patch bogus or was it just forgotten?

These are not fixes to "algorithmic flaws". It's more like that Ilpo is writing a different program to fill different needs, and I did not see what workflow wanted to have the list of changes that were in the upstream and our changes. Maybe what Ilpo wanted to see was something like "git log upstream...mine" (three-dots not two to mean symmetric difference). I dunno. That operation certainly did not exist when we did git-cherry originally.

The original purpose of git-cherry (which probably is different from what Ilpo wanted to have, and that is why Ilpo modified it into a different program) is for a developer in the contributor role to see which ones of local patches have been accepted upstream and which ones still remain unapplied -- the intent is to help rebase only the latter and keep trying to convince upstream that these remaining ones are also worth applying.

So minus (-) lines are very much needed to if you want to see which ones have been accepted. Plus lines are used to pick which ones to rebase by older version of git-rebase, but I do not think we do that anymore. And in any case we are _not_ interested in whatever happened in the upstream that did not come from the branch we are looking at.

I suspect we do not use it anywhere anymore. Maybe we can remove it?

	... goes and looks ...
	git grep -e git.cherry --and --not -e git.cherry-pick

Nah, no such luck. One of the documentation suggests that you drive cvsexportcommit using its output, like this:

	git cherry cvs mine | sed -n -e 's/^\+ //p' |
        xargs -L 1 git-cvsexportcommit -c -p -v

and I can see why cherry is (perhaps slightly) more desirable than "git rev-list cvs..mine"

So unless we come up with an alternative way to do this, we cannot change it or drop it. Not yet.

Previous: Petr BaudisNext: Petr Baudis
Message 3 of 7 in “Fixes git-cherry algorithmic flaws”
  1. Fixes git-cherry algorithmic flawsIlpo Järvinen, Aug 7, 2006
  2. Petr BaudisSep 24, 2006
  3. Junio C HamanoSep 24, 2006
  4. Petr BaudisSep 24, 2006
  5. Junio C HamanoSep 24, 2006
  6. Ilpo JärvinenSep 24, 2006
  7. Jakub NarebskiSep 24, 2006

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.