Re: [PATCH 0/4] diff --cc: relax path filtering
- From
Max Kirillov <max@max630.net>
- Date
- Apr 3, 2015, 16:29 UTC
- Message-ID
- <20150403162945.GE8771@wheezy.local>
- In-Reply-To
- <20150402211310.GA22988@peff.net>
On Thu, Apr 02, 2015 at 05:13:10PM -0400, Jeff King wrote:
Show 9 quoted lines
> On Thu, Apr 02, 2015 at 11:34:09PM +0300, Max Kirillov wrote: > >> For diff --cc, paths fitering used to select only paths which have >> changed in all parents, while diffing itself output hunks which are >> changed in as few as 2 parents. > > I'm confused about "used to" here. Is this a regression due to the > combine-diff rewriting that happened in 2.0, or do you just mean "before > this patch series, we used to do this other thing".
As far as I can see it was "always", at least since 1.8.0; the test script did not work before that.
Show 15 quoted lines
>> Fix intersect_paths() to add paths which have at least 2 changed
>> parents.
>
> I'd worry a little that this is increasing the cost to do "log --cc", as
> it means we will have to open and look at extra files, and we may find
> in many cases that there aren't any interesting hunks. Which would imply
> we might want to put it behind a flag, rather than as the default
> ("--cc-me-harder").
>
> But if I'm understanding the issue correctly, this should only matter
> for octopus merges. That is, the old rule for looking at a path was "is
> there at least one parent whose content we took verbatim", but the new
> one is "are there are at least 2 parents whose content we did not take
> verbatim". With only two parents, those would be the same thing, I
> think.Yes, I hope so. I tried to reproduce benchamrk which is in 8518ff8fabc (git log --raw --no-abbrev --no-renames (-c|--cc) v3.10..v3.11), and saw no difference. But my times was about 3 seconds, not 20 as there, andI cannot say my computer is very fast, so probably I've done something wrong.
-- Max