Re: Updated Kernel Hacker's guide to git
- From
- Francis Moreau <francis.moro@gmail.com>
- Date
- Dec 22, 2006, 20:34 UTC
- Message-ID
- <38b2ab8a0612221234x3832c5bfr1f64caccbb8247b9@mail.gmail.com>
- In-Reply-To
- <7vvek41b29.fsf@assigned-by-dhcp.cox.net>
On 12/22/06, Junio C Hamano <junkio@cox.net> wrote:
Show 20 quoted lines
> "Francis Moreau" <francis.moro@gmail.com> writes: > > > I think this part is really confusing. For a new comer, saying that: > > > > git diff a b == git diff a..b > > > > is really not intuitive. Maybe just because adding a new symbol ".." > > in git diff command line means (for me) that we're doing a special > > diff. I would never thought by my own that ".." means a simple "to". > > We did not originally have "A B"; you were supposed to always > say "A..B". But all other SCM had "A B" notation, so we added > support for both because doing so was trivial and there is no > risk of confusion (because diff is about two points while log is > about a set). These two notations are interchangeable for > "diff". If it confuses you, you can stick to the "git diff A B" > notation. Of if you are like Linus, stick to "A..B" notation. > Either way, you can pretend that the other notation does not > even exist and be happy ;-). >
no, no, I think you miss my point here. What is confusing, and it seems I'm not the only one to find it confusing, is the fact that "git diff A B == git diff A..B", not the "A..B" notation per se.
git diff A B, is really intuitive and easy to understand because we all use to using the diff "A B" notation and it always has worked with 2 endpoints. So I would bet that all newbies who use for the first time the git diff command will use "A B" notation, not "A..B" one.
Show 9 quoted lines
> Yes, users often wondered why "git diff" accepts "A B", "git > log" wants "A..B" and "git log A B" is a disaster. But the root > cause of the confusion was not about notation but about the > conceptual difference (two points vs a set). > > I do not think changing the meaning of "diff A..B" to what "diff > A...B" means is a good thing. The notation "..." even _looks_ > like a magic, and in diff context, what it does _is_ magic (it > is magic in log context, too). You are giving two points, but
But ".." is magic too ! I would really expect something magic to happen when using the "A..B" notation because I'm a new comer in git and I never used the "A..B" notation before.
And since I already used this notation when using git log command, I would expect "git diff A..B" to give the current result given by "git diff A...B".
But yes, now I have understand that git diff works with end points unlike git log, I can stick with two notations:
git diff A B
git diff A...B (3 dots)and I'm happy ;)
thanks
-- Francis