Subject: Re: [PATCH v3 4/8] doc: give headings for the two and three dot notations

From: Jakub Narębski <[email-masked]>
Date: Tue, 19 Jul 2016 18:03:22 +0200

W dniu 2016-07-13 o 00:11, Philip Oakley pisze:
> From: "Junio C Hamano" <[email-masked]>
[...]
>> I actually think this is a good place to have them described.
>> <rev>^<number> is about specifying a single commit.  These two are
>> not that (you can say HEAD^2^@ but you cannot say HEAD^@^2, for
>> example).
> 
> These two are special cases I'm not too familiar with, particularly
> the r1^! which I didn't understand from the description...

<rev>^@ is all parents of <rev>, that is

  <rev>^@  ==  <rev>^1 <rev>^2 ... <rev>^<n>

where <n> is number of parents commit <rev> has.

<rev>^! is (if standalone) a single commit range, only <rev> revision.
It is actually

  <rev>^!  ==  ( <rev> --not <rev>^@ )

that is, reachable from <rev> but not from any of its parents.
Parentheses here denote that `--not` does not affect the rest of
rev-like parameters.

Hope that helps
-- 
Jakub Narębski