Re: Question about git-cherry and the rev list it's using
- From
Michael J Gruber <git@drmicha.warpmail.net>
- Date
- May 13, 2011, 11:13 UTC
- Message-ID
- <4DCD1254.4050008@drmicha.warpmail.net>
- In-Reply-To
- <BANLkTi=d+gDhgnmOzUDfHhGJP76JuLHJ2Q@mail.gmail.com>
Francis Moreau venit, vidit, dixit 13.05.2011 09:02:
Show 27 quoted lines
> 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.)
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. 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).
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..
Michael