Re: [PATCH 0/4] diff --cc: relax path filtering
From: Max Kirillov <hidden>
Date: 2016-06-15 23:04:21
On Thu, Apr 02, 2015 at 05:13:10PM -0400, Jeff King wrote:
On Thu, Apr 02, 2015 at 11:34:09PM +0300, Max Kirillov wrote:quoted
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.
quoted
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