Re: Mismatch meaning between git-diff and git-log for the .. (double dot notation) and ... (triple dot notation)

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

 



Kevin Daudt <kdaudt@xxxxxxxxxxxxxxx> writes:

>> This is not limited to you but any user of modern Git is better off
>> to pretend "git diff A..B" does not exist; please unlearn dot-dot
>> and three-dots when using "git diff" and you'd be happier.
>
> I agreen that you should not use `A..B`, but what is wrong with
> `A...B`? The alternative is a lot more verbose.
>
> git diff $(git merge-base A B) B

Because it would interfere with even grander consistency that we
could achieve in the future, if we get rid of it.

Within the context of "git diff" (but not "git" in general), "git
diff A...B" that expands to "git diff $(git merge-base A B) B" may
appear OK, but this thread started by comparing "git log" and "git
diff", so it is no longer worth limiting our vision to a single "git
diff" command if we want to continue this thread.

Some commands, like "git checkout A...B", know that A...B can stand
for "git merge-base A B" in a context that does not call for a range
but calls for a single revision.  We probably would want to teach it
the general revision parser machinery so that this can consistently
be used.

In such a world, "git diff A...B" ought to mean, because "diff" is
about discrete endpoints and not about ranges, "git diff $(git
merge-base A B)", i.e. it should behave just like "git diff C" that
compares the given single commit and the contents in the working
tree through the index.  "git diff A...B" we currently have by
mistake should be spelled in "git diff A...B B" (or alternatively,
"git diff B...A B").

It would take a long time and careful transition planninng to reach
there, and training people not to use dot-dot notation is merely a
very small first step, though.






[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