Re: [PATCH v7 0/5] git log -L, all new and shiny

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Junio C Hamano <gitster@xxxxxxxxx> writes:

> Junio C Hamano <gitster@xxxxxxxxx> writes:
>
>> Thomas Rast <trast@xxxxxxxxxxxxxxx> writes:
>>
>>> This would be the first backwards coupling between the revision-walk and
>>> the diff generation parts, at least that I know of.
>>
>> I am not convinced if you need to have any unusual back-coupling to
>> begin with, by the way.
>>
>> If you say "git log -p [--options] -- pathspec", the revision
>> machinery does filter commits that do not touch any paths that patch
>> pathspec with the TREESAME logic, but that does not necessarily mean
>> you will see _all_ the commits that are not TREESAME.
[...]
> The revision machinery looks at C and finds its parent B.  It runs
> object level tree comparison and finds that their trees are
> different at path F.  It makes a mental note that it may need to
> show the log message of C, and asks the diff machinery to run
> diff-tree between B and C.  The diff machinery finds that it needs
> to show something even in the presense of -w option by actual
> comparison, and just before showing the very first line of patch
> output, it shows the log message of C (due to the earlier "mental
> note").
>
> Then the revision machinery looks at B.  It does the same between B
> and A, but this time around, the diff machinery finds that, even
> though A and B were _not_ TREESAME at the revision traversal level,
> there is nothing to be shown after filtering with the -w option.
> Hence no patch is shown and log message for B is not shown, either.

Thanks for the great explanations.

Having spent some time letting this sink in (and being busy doing other
things), I think it's actually a good idea.  It forces us to go back and
change it around so that the diff machinery gets a say _before_ we
simplify history.  I think this bit will be important for log -L history
to make sense, and it's a bug waiting to happen for the -w case.

-- 
Thomas Rast
trast@{inf,student}.ethz.ch
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]