aboutsummaryrefslogtreecommitdiffstats
path: root/org.eclipse.jgit.test/tst/org
diff options
context:
space:
mode:
authorShawn O. Pearce <spearce@spearce.org>2010-08-24 17:35:52 -0700
committerShawn O. Pearce <spearce@spearce.org>2010-08-25 17:07:13 -0700
commit8da17c50469f0864e710faf9d068ce2abe1f92fc (patch)
treebeb9b93bec42df2fb4379c3e449f47f8fb79d8b2 /org.eclipse.jgit.test/tst/org
parentc59e3a493b60e0e1f4a26aaf752737102335a625 (diff)
downloadjgit-8da17c50469f0864e710faf9d068ce2abe1f92fc.tar.gz
jgit-8da17c50469f0864e710faf9d068ce2abe1f92fc.zip
Support parsing git describe style output
We now match on the -gABBREV style output created by git describe when its describing a non-tagged commit, and resolve that back to the full ObjectId using the abbreviation resolution feature that we already support. Change-Id: Ib3033f9483d9e1c66c8bb721ff48d4485bcdaef1 Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Diffstat (limited to 'org.eclipse.jgit.test/tst/org')
-rw-r--r--org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/RepositoryResolveTest.java20
1 files changed, 20 insertions, 0 deletions
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/RepositoryResolveTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/RepositoryResolveTest.java
index c6ab8ba4f3..4ca9ba0208 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/RepositoryResolveTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/RepositoryResolveTest.java
@@ -48,6 +48,8 @@ package org.eclipse.jgit.lib;
import java.io.IOException;
+import org.eclipse.jgit.errors.IncorrectObjectTypeException;
+
public class RepositoryResolveTest extends SampleDataRepositoryTestCase {
public void testObjectId_existing() throws IOException {
@@ -140,4 +142,22 @@ public class RepositoryResolveTest extends SampleDataRepositoryTestCase {
assertEquals("856ec208ae6cadac25a6d74f19b12bb27a24fe24",db.resolve("refs/tags/B10th^{tree}").name());
}
+ public void testParseGitDescribeOutput() throws IOException {
+ ObjectId exp = db.resolve("b");
+ assertEquals(exp, db.resolve("B-g7f82283")); // old style
+ assertEquals(exp, db.resolve("B-6-g7f82283")); // new style
+
+ assertEquals(exp, db.resolve("B-6-g7f82283^0"));
+ assertEquals(exp, db.resolve("B-6-g7f82283^{commit}"));
+
+ try {
+ db.resolve("B-6-g7f82283^{blob}");
+ fail("expected IncorrectObjectTypeException");
+ } catch (IncorrectObjectTypeException badType) {
+ // Expected
+ }
+
+ assertEquals(db.resolve("b^1"), db.resolve("B-6-g7f82283^1"));
+ assertEquals(db.resolve("b~2"), db.resolve("B-6-g7f82283~2"));
+ }
}