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

Re: Question about git-cherry and the rev list it's using

From
FMFrancis Moreau <francis.moro@gmail.com>
Date
May 13, 2011, 16:29 UTC
Message-ID
<BANLkTik4Gt8y0kSBcMrROTd67dfxMXO-KA@mail.gmail.com>
In-Reply-To
<4DCD1254.4050008@drmicha.warpmail.net>

On Fri, May 13, 2011 at 1:13 PM, Michael J Gruber <git@drmicha.warpmail.net> wrote:

Show 30 quoted lines
> Francis Moreau venit, vidit, dixit 13.05.2011 09:02:
>> On Fri, May 13, 2011 at 8:54 AM, Francis Moreau <francis.moro@gmail.com> wrote:
>>> [ resending to the mailing list too ]
>>>
>>> On Thu, May 12, 2011 at 8:47 AM, Michael J Gruber
>>> <git@drmicha.warpmail.net> wrote:
>>>> Francis Moreau venit, vidit, dixit 11.05.2011 18:11:
>>>>> Hello,
>>>>>
>>>>> I'm using "git cherry old master base" to see if all commits between
>>>>> master and base have been applied in my 'old' branch.
>>>>>
>>>>> So I expect that git cherry is using a list of commits given by : "git
>>>>> rev-list --no-merges base..master".
>>>>
>>>> Not really.
>>>>
>>>> For each commit in "--no-merges old..master ^base" (i.e. "--no-merges
>>>> master ^old ^base"), "git cherry" checks whether there is a patch
>>>> equivalent commit in "--no-merges master..old", and outputs it with + or -.
>>>>
>>>
>>> oh you're right, I missed the case when old has been merged in master.
>>>
>>
>> BTW, can't it be convenient for users if git-cherry also displays the
>> sha1 of the commits which have been merged upstream (the ones with the
>> '-' sign) ?
>
> (I assume you mean the sha1 of the commit as it is in upstream.)
yes.
>
> Well, in general the map "sha1 to patchid" is not one-to-one and may not
> even be two-to-one. So we possibly would have to list more than one sha1
> along with the -1.
just showing the latest one would be nice though.
> Anyways, with the current implementation you can't do
> that, and it is not simple to change (because we may traverse *a lot* of
> commits if base and upstream are far apart or disconnected).

Ah, with my naive view I would have thought that to process the patch-id of a commit in upstream and compare it, git has the sha1.

>
> Note that "git cherry -v" gives you the subjects so that you can grep
> for those in case they match in your work flow. Same with "git log
> --cherry --oneline" etc..

yes but as you said the subjects must match which is not always the case (otherwise that would make patch-id unneeded)

Thanks
-- 
Francis
Previous: Michael J Gruber
Message 6 of 6 in “Question about git-cherry and the rev list it's using”
  1. Francis MoreauMay 11, 2011
  2. Michael J GruberMay 12, 2011
  3. Francis MoreauMay 13, 2011
  4. Francis MoreauMay 13, 2011
  5. Michael J GruberMay 13, 2011
  6. Francis MoreauMay 13, 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.