Re: [PATCH 0/6] Optionally restrict range-diff output to "left" or "right" range only
- From
Jeff King <peff@peff.net>
- Date
- Feb 5, 2021, 10:11 UTC
- Message-ID
- <YB0Z5JXbe22ko2Mj@coredump.intra.peff.net>
- In-Reply-To
- <xmqqtuqr2uz3.fsf@gitster.c.googlers.com>
On Thu, Feb 04, 2021 at 04:56:16PM -0800, Junio C Hamano wrote:
Show 13 quoted lines
> > As an aside: I am curious if I'm missing something when you say the
> > "only way" is to ask for a 'git range-diff ...@{u}'. IIUC what you're
> > describing, I often resort to using 'git cherry' for that exact thing.
> > But, I may not be quite understanding your use-case (and why git-cherry
> > doesn't do what you want already).
> >
> > My latter question is purely for satisfying my own curiosity; I don't
> > have any problem with a '--{left,right}-only' option in range-diff. From
> > my quick read of the patches, it all looks pretty sane to me.
>
> The question is addressed to Dscho, and I am also somewhat curious.
> Perhaps the reason would be that the output from cherry is not as
> easy to read as range-diff, without any post-processing.I had the same curiosity; I'd use git-cherry (or rev-list --cherry) for this.
I suspect the big difference is the quality of the matching. git-cherry is purely looking at patch-ids. So it is quite likely to say "this was not applied upstream" when what got applied differed slightly (e.g., fixups upstream, applied to a different base, etc). Whereas range-diff has some cost heuristics for deciding that two patches are basically the same thing. So it would find more cases (and as a bonus, give you the diff to see what tweaks were made upstream).
It does make me wonder if it would be useful for rev-list, etc to have an option to make "--cherry" use the more clever heuristics instead of just a patch-id. It would never show the same diff output as range-diff, but maybe more scripts would find the advanced heuristic useful.
I know it would probably make rebase's "ignore if in upstream" feature less clunky when I rebase topics. But it would also make it more dangerous! E.g., right now I see any upstream tweaks as potential conflicts when I rebase, and I manually review them for sanity.
-Peff