Re: [Bug report] git diff stat shows unrelated diff

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

 



Hi,

On Thu, Feb 14, 2019 at 11:35 AM Viresh Kumar <viresh.kumar@xxxxxxxxxx> wrote:
>
> Hello,
>
> I am not sure if it is a bug or not, but the output I got wasn't what
> I was looking for. And so looking for some help. I was looking to send
> pull request [1] to PM maintainer and was generating the request
> against his tree [2], which already has kernel upto v5.0-rc6 merged in
> it.
>
> These are my local branches:
>
> Branch A:
>
> 55538fbc79e9 cpufreq: qcom: Read voltage LUT and populate OPP
> f896d06665ec cpufreq: qcom-hw: Move to device_initcall
> 1c7fc5cbc339 (tag: v5.0-rc2) Linux 5.0-rc2
>
> Branch B:
>
> a4f342b9607d PM / OPP: Introduce a power estimation helper
> 285881b51eb5 PM / OPP: Remove unused parameter of _generic_set_opp_clk_only()
> bfeffd155283 (tag: v5.0-rc1) Linux 5.0-rc1
>
> pm/linux-next branch already has Branch B merged in it (with an
> earlier pull request).
>
> Branch C (7c139d3f0f99) is a merge of Branch A and Branch B. When I
> try to generate diff-stat with:
>
> git diff -M --stat pm/linux-next..7c139d3f0f99
>
> It shows me the diffstat between v5.0-rc1..v5.0-rc2 as well.
>
> If I do
>
> git diff -M --stat v5.0-rc2..7c139d3f0f99
>
> it shows only the files that have changed in patches in branch A and
> B.
>
> Since pm/linux-next already has Branch B and all the rcs upto rc6, I
> was expecting the output of first diffstat to be similar to second one
> (without branch B stuff). Is the expectation incorrect ?

I think you're getting tripped up by double-dot vs triple-dot with
diff being different than log:

`git diff D..E` means the same thing as `git diff D E`, i.e. diff the
two commits D and E.

`git diff D...E` means the same thing as `git diff $(git merge-base D E) E`

There are some people for whom this state of affairs makes sense.  I
am not one of them, and I suspect you aren't either.  The arguments
made by those who feel this makes sense seem reasonable to me in the
moment when they present them, but I have never been able to remember
these arguments longer than briefly.  It just doesn't stick with me.
The only thing I seem to be able to retain is the following:  "git
diff D..E is totally useless and should be an error because (1) it
doesn't do what I expect and (2) for folks that want the behavior
currently gotten with that syntax can instead just use a space instead
of a double dot."


Hope that helps,
Elijah



[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]

  Powered by Linux