Confused as to the correct syntax
The man page for git-rev-parse talks about the way to specify commits back from a named commit object. The following text in this man page tries to explain it, but it has confused me more
"A suffix ~<n> to a revision parameter means the commit object that is the <n>th generation grand-parent of the named commit object, following only the first parent. I.e. rev~3 is equivalent to rev^ which is equivalent to rev11^1."
Why is rev~3 equivalent to rev^, surely it is equivalent to rev^^^
Why is rev~3 equivalent to rev11^1, should that not be rev^1^1^1
I don't understand the syntax here - so was looking it up in the man page. Is there an error in the page or have I misunderstood something.
Signature · 3 lines
Alan Chandler http://www.chandlerfamily.org.uk Open Source. It's the difference between trust and antitrust.
Quoted 8 lines · Alan Chandler
"A suffix ~<n> to a revision parameter means the commit object that is the <n>th generation grand-parent of the named commit object, following only the first parent. I.e. rev~3 is equivalent to rev^ which is equivalent to rev11^1."
Why is rev~3 equivalent to rev^, surely it is equivalent to rev^^^
Why is rev~3 equivalent to rev11^1, should that not be rev^1^1^1
Sorry, for not knowing how to do that properly in Asciidoc ;-).
The source to the man page and HTML page reads like this:
* A suffix '~<n>' to a revision parameter means the commit object that is the <n>th generation grand-parent of the named commit object, following only the first parent. I.e. rev~3 is equivalent to rev^^^ which is equivalent to rev^1^1^1.
PATCH 1/1 Fix usage of carets in git-rev-parse(1)
... but using a {caret} attribute.
---
Junio C Hamano <[email protected]> wrote Wed, Oct 05, 2005:
Quoted 7 lines
Quoted 5 lines · Alan Chandler
"A suffix ~<n> to a revision parameter means the commit object that is the <n>th generation grand-parent of the named commit object, following only the first parent. I.e. rev~3 is equivalent to rev^ which is equivalent to rev11^1."
Quoted 5 lines
Quoted 3 lines
Why is rev~3 equivalent to rev^, surely it is equivalent to rev^^^
Why is rev~3 equivalent to rev11^1, should that not be rev^1^1^1
Sorry, for not knowing how to do that properly in Asciidoc ;-).
I think something like the following will do ...
Documentation/asciidoc.conf +5 -0
@@ -7,6 +7,9 @@ # Show GIT link as: <command>(<section>); if section is defined, else just show # the command. +[attributes] +caret=^ + ifdef::backend-docbook[] [gitlink-inlinemacro] {0%{target}}
@@ -19,3 +22,5 @@ ifdef::backend-xhtml11[] [gitlink-inlinemacro] <a href="{target}.html">{target}{0?({0})}</a> endif::backend-xhtml11[] + +
Documentation/git-rev-parse.txt +12 -11
@@ -54,13 +54,13 @@ OPTIONS `git-diff-\*`). --not:: - When showing object names, prefix them with '^' and - strip '^' prefix from the object names that already have + When showing object names, prefix them with '{caret}' and + strip '{caret}' prefix from the object names that already have one. --symbolic:: Usually the object names are output in SHA1 form (with - possible '^' prefix); this option makes them output in a + possible '{caret}' prefix); this option makes them output in a form as close to the original input as possible.
@@ -93,22 +93,23 @@ what is called an 'extended SHA1' syntax happen to have both heads/master and tags/master, you can explicitly say 'heads/master' to tell GIT which one you mean. -* A suffix '^' to a revision parameter means the first parent of - that commit object. '^<n>' means the <n>th parent (i.e. - 'rev^' - is equivalent to 'rev^1'). As a special rule, - 'rev^0' means the commit itself and is used when 'rev' is the +* A suffix '{caret}' to a revision parameter means the first parent of + that commit object. '{caret}<n>' means the <n>th parent (i.e. + 'rev{caret}' + is equivalent to 'rev{caret}1'). As a special rule, + 'rev{caret}0' means the commit itself and is used when 'rev' is the object name of a tag object that refers to a commit object. * A suffix '~<n>' to a revision parameter means the commit object that is the <n>th generation grand-parent of the named commit object, following only the first parent. I.e. rev~3 is - equivalent to rev^^^ which is equivalent to rev^1^1^1. + equivalent to rev{caret}{caret}{caret} which is equivalent to\ + rev{caret}1{caret}1{caret}1. -'git-rev-parse' also accepts a prefix '^' to revision parameter, +'git-rev-parse' also accepts a prefix '{caret}' to revision parameter, which is passed to 'git-rev-list'. Two revision parameters concatenated with '..' is a short-hand for writing a range -between them. I.e. 'r1..r2' is equivalent to saying '^r1 r2' +between them. I.e. 'r1..r2' is equivalent to saying '{caret}r1 r2' Author
Signature · 1 line
Jonas Fonseca
Re: [PATCH] Fix usage of carets in git-rev-parse(1)
Quoted 3 lines · Jonas Fonseca
... but using a {caret} attribute.
Signed-off-by Jonas Fonseca <[email protected]>
Thanks. This seems to fix it. Applied and pushed out (but not in time for just released 0.99.8b).
Quoted 10 lines · Junio C Hamano
Quoted 8 lines · Alan Chandler
"A suffix ~<n> to a revision parameter means the commit object that is the <n>th generation grand-parent of the named commit object, following only the first parent. I.e. rev~3 is equivalent to rev^ which is equivalent to rev11^1."
Why is rev~3 equivalent to rev^, surely it is equivalent to rev^^^
Why is rev~3 equivalent to rev11^1, should that not be rev^1^1^1
Quoted 8 lines
Sorry, for not knowing how to do that properly in Asciidoc ;-).
The source to the man page and HTML page reads like this:
* A suffix '~<n>' to a revision parameter means the commit object that is the <n>th generation grand-parent of the named commit object, following only the first parent. I.e. rev~3 is equivalent to rev^^^ which is equivalent to rev^1^1^1.
No the HTML page is screwed up too.
Signature · 3 lines
Alan Chandler http://www.chandlerfamily.org.uk Open Source. It's the difference between trust and antitrust.
Quoted 10 lines · Alan Chandler
Quoted 8 lines
Sorry, for not knowing how to do that properly in Asciidoc ;-).
The source to the man page and HTML page reads like this:
* A suffix '~<n>' to a revision parameter means the commit object that is the <n>th generation grand-parent of the named commit object, following only the first parent. I.e. rev~3 is equivalent to rev^^^ which is equivalent to rev^1^1^1.
No the HTML page is screwed up too.
I know. The source reads like above, is what I said. Help from Asciidoc savvy people is very welcomed.