@ -374,20 +374,34 @@ public abstract class Repository {
/ * *
* Parse a git revision string and return an object id .
*
* Currently supported is combinations of these .
* Combinations of these operators are supported :
* < ul >
* < li > SHA - 1 - a SHA - 1 < / li >
* < li > refs / . . . - a ref name < / li >
* < li > ref ^ n - nth parent reference < / li >
* < li > ref ~ n - distance via parent reference < / li >
* < li > ref @ { n } - nth version of ref < / li >
* < li > ref ^ { tree } - tree references by ref < / li >
* < li > ref ^ { commit } - commit references by ref < / li >
* < li > < b > HEAD < / b > , < b > MERGE_HEAD < / b > , < b > FETCH_HEAD < / b > < / li >
* < li > < b > SHA - 1 < / b > : a complete or abbreviated SHA - 1 < / li >
* < li > < b > refs / . . . < / b > : a complete reference name < / li >
* < li > < b > short - name < / b > : a short reference name under { @code refs / heads } ,
* { @code refs / tags } , or { @code refs / remotes } namespace < / li >
* < li > < b > tag - NN - gABBREV < / b > : output from describe , parsed by treating
* { @code ABBREV } as an abbreviated SHA - 1 . < / li >
* < li > < i > id < / i > < b > ^ < / b > : first parent of commit < i > id < / i > , this is the same
* as { @code id ^ 1 } < / li >
* < li > < i > id < / i > < b > ^ 0 < / b > : ensure < i > id < / i > is a commit < / li >
* < li > < i > id < / i > < b > ^ n < / b > : n - th parent of commit < i > id < / i > < / li >
* < li > < i > id < / i > < b > ~ n < / b > : n - th historical ancestor of < i > id < / i > , by first
* parent . { @code id ~ 3 } is equivalent to { @code id ^ 1 ^ 1 ^ 1 } or { @code id ^ ^ ^ } . < / li >
* < li > < i > id < / i > < b > : path < / b > : Lookup path under tree named by < i > id < / i > < / li >
* < li > < i > id < / i > < b > ^ { commit } < / b > : ensure < i > id < / i > is a commit < / li >
* < li > < i > id < / i > < b > ^ { tree } < / b > : ensure < i > id < / i > is a tree < / li >
* < li > < i > id < / i > < b > ^ { tag } < / b > : ensure < i > id < / i > is a tag < / li >
* < li > < i > id < / i > < b > ^ { blob } < / b > : ensure < i > id < / i > is a blob < / li >
* < / ul >
*
* Not supported is :
* < p >
* The following operators are specified by Git conventions , but are not
* supported by this method :
* < ul >
* < li > timestamps in reflogs , ref @ { full or relative timestamp } < / li >
* < li > < b > ref @ { n } < / b > : n - th version of ref as given by its reflog < / li >
* < li > < b > ref @ { time } < / b > : value of ref at the designated time < / li >
* < / ul >
*
* @param revstr
@ -397,6 +411,12 @@ public abstract class Repository {
* { @code revstr } contains an abbreviated ObjectId and this
* repository contains more than one object which match to the
* input abbreviation .
* @throws IncorrectObjectTypeException
* the id parsed does not meet the type required to finish
* applying the operators in the expression .
* @throws RevisionSyntaxException
* the expression is not supported by this implementation , or
* does not meet the standard syntax .
* @throws IOException
* on serious errors
* /