Subject: Re: [PATCH 1/1] commit-graph.c: avoid unnecessary tag dereference when merging

From: Taylor Blau <[email-masked]>
Date: Mon, 23 Mar 2020 14:15:25 -0600

On Sun, Mar 22, 2020 at 12:04:24PM +0100, SZEDER Gábor wrote:
> On Sun, Mar 22, 2020 at 01:36:35AM -0400, Jeff King wrote:
> > The "--input=none" option
> > isn't "no input"; it's actually "take all existing graphed objects as
> > input" (i.e., it implies --append). So each of those objects will
> > already have been examined in an earlier stage.
>
> Yeah, we discussed it earlier that '--input=none' doesn't properly
> describe what it tries to accomplish, and suggested '--input=exists'
> (or was it 'existing'?) instead.

Good idea. I don't remember discussing '--input=exist{s,ing}',
specifically, but I do think that '--input=none' is not as clear as it
could be.

I sent [1], which I think may be a step in the right direction. I'll
look forward to your thoughts.

> > > Where the last step is taking all commits listed in any pack, which is
> > > cheap to iterate.
> >
> > I'm not sure it's all that cheap. It has to find the type of every
> > object in every pack. And finding types involves walking delta chains.
>
> Indeed, that's just about the most expensive way to find all commits,
> in my experience it can be well over a magnitude slower than
> '--reachable'.

Thanks,
Taylor

[1]: https://lore.kernel.org/git/[email-masked]/