]> source.dussan.org Git - jgit.git/commit
Support parsing previous checkout as a revision expresion. 76/6776/6
authorRobin Rosenberg <robin.rosenberg@dewire.com>
Thu, 12 Jul 2012 06:04:35 +0000 (08:04 +0200)
committerRobin Rosenberg <robin.rosenberg@dewire.com>
Fri, 20 Jul 2012 06:20:48 +0000 (08:20 +0200)
commit2a2362fbb399582bf0f1be9f0f55101ac9daa201
tree4e32249877407510dc5a9e664389993bda9f6e2c
parentf82d1cb5c0ee593eb7a68b2d9ea539399f9204ba
Support parsing previous checkout as a revision expresion.

Repository.resolve can only return an ObjectId and will
continue to do so, but another method, simplify(), will
be able to return a branch name for some cases.

Previous checkouts can be specified as @{-n}, where n is an
integer speifying the n:th previous branch. The result
is the branch name, unless the checkout was a detached head,
in which case the object id is returned. Since the result
is a branch it may be followed by a references to the reflog,
such as @{-1}@{1} if necessary.

A simple expression like "master" is resolved to master in
simplify, but anything starting with refs gets resolved to
its object id, even if it is a branch.

A symbolic ref is resolved to its leaf ref, e.g. "HEAD" might
be resolved to "master".

Change-Id: Ifb815a1247ba2a3e2d9c46249c09be9d47f2b693
org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/ReflogResolveTest.java
org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/RepositoryResolveTest.java
org.eclipse.jgit/src/org/eclipse/jgit/lib/Repository.java