]> source.dussan.org Git - jgit.git/commitdiff
Describe HEAD if no explicit target was set 85/17285/2
authorMatthias Sohn <matthias.sohn@sap.com>
Thu, 10 Oct 2013 21:01:30 +0000 (23:01 +0200)
committerMatthias Sohn <matthias.sohn@sap.com>
Thu, 10 Oct 2013 22:12:44 +0000 (00:12 +0200)
Change-Id: I5a5a238709df813ec07278bb3b4f9ea5c85c0883
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
org.eclipse.jgit.test/tst/org/eclipse/jgit/api/DescribeCommandTest.java
org.eclipse.jgit/resources/org/eclipse/jgit/internal/JGitText.properties
org.eclipse.jgit/src/org/eclipse/jgit/api/DescribeCommand.java
org.eclipse.jgit/src/org/eclipse/jgit/internal/JGitText.java

index 88f610892611b607f2df9e95e8701679a70d47bf..eb598e80fd9f61f74b8c7a42968e342023206b64 100644 (file)
  */
 package org.eclipse.jgit.api;
 
-import org.eclipse.jgit.api.errors.GitAPIException;
-import org.eclipse.jgit.junit.RepositoryTestCase;
-import org.eclipse.jgit.lib.ObjectId;
-import org.junit.Test;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
 
 import java.io.File;
 import java.io.FileWriter;
 import java.io.IOException;
 
-import static org.junit.Assert.*;
+import org.eclipse.jgit.api.errors.GitAPIException;
+import org.eclipse.jgit.api.errors.RefNotFoundException;
+import org.eclipse.jgit.junit.RepositoryTestCase;
+import org.eclipse.jgit.lib.ObjectId;
+import org.junit.Test;
 
 public class DescribeCommandTest extends RepositoryTestCase {
 
@@ -63,7 +66,7 @@ public class DescribeCommandTest extends RepositoryTestCase {
                git = new Git(db);
        }
 
-       @Test(expected = IllegalArgumentException.class)
+       @Test(expected = RefNotFoundException.class)
        public void noTargetSet() throws Exception {
                git.describe().call();
        }
@@ -87,6 +90,9 @@ public class DescribeCommandTest extends RepositoryTestCase {
                assertNameStartsWith(c4, "3e563c5");
                // the value verified with git-describe(1)
                assertEquals("t2-1-g3e563c5", describe(c4));
+
+               // test default target
+               assertEquals("t2-1-g3e563c5", git.describe().call());
        }
 
        /**
index e0daa4d126351206a59c134a200b2b4a8171a51d..706dce7ce1f0738e49bf0c457c1c772c9299f86d 100644 (file)
@@ -478,7 +478,6 @@ systemConfigFileInvalid=Systen wide config file {0} is invalid {1}
 tagAlreadyExists=tag ''{0}'' already exists
 tagNameInvalid=tag name {0} is invalid
 tagOnRepoWithoutHEADCurrentlyNotSupported=Tag on repository without HEAD currently not supported
-targetIsNotSet=Target is not set
 theFactoryMustNotBeNull=The factory must not be null
 timerAlreadyTerminated=Timer already terminated
 topologicalSortRequired=Topological sort required.
index 863104b66348cd6924c15db005a121a48dec66da..c2bf74410874a99675fafa7f78cdfc47d4f78c45 100644 (file)
@@ -48,6 +48,7 @@ import org.eclipse.jgit.api.errors.RefNotFoundException;
 import org.eclipse.jgit.errors.IncorrectObjectTypeException;
 import org.eclipse.jgit.errors.MissingObjectException;
 import org.eclipse.jgit.internal.JGitText;
+import org.eclipse.jgit.lib.Constants;
 import org.eclipse.jgit.lib.ObjectId;
 import org.eclipse.jgit.lib.Ref;
 import org.eclipse.jgit.lib.Repository;
@@ -135,14 +136,16 @@ public class DescribeCommand extends GitCommand<String> {
        }
 
        /**
-        * Describes the specified commit.
+        * Describes the specified commit. Target defaults to HEAD if no commit was
+        * set explicitly.
         *
-        * @return if there's a tag that points to the commit being described, this tag name
-        *         is returned. Otherwise additional suffix is added to the nearest tag, just
-        *         like git-describe(1).
+        * @return if there's a tag that points to the commit being described, this
+        *         tag name is returned. Otherwise additional suffix is added to the
+        *         nearest tag, just like git-describe(1).
         *         <p/>
-        *         If none of the ancestors of the commit being described has any tags at all,
-        *         then this method returns null, indicating that there's no way to describe this tag.
+        *         If none of the ancestors of the commit being described has any
+        *         tags at all, then this method returns null, indicating that
+        *         there's no way to describe this tag.
         */
        @Override
        public String call() throws GitAPIException {
@@ -150,7 +153,7 @@ public class DescribeCommand extends GitCommand<String> {
                        checkCallable();
 
                        if (target == null)
-                               throw new IllegalArgumentException(JGitText.get().targetIsNotSet);
+                               setTarget(Constants.HEAD);
 
                        Map<ObjectId, Ref> tags = new HashMap<ObjectId, Ref>();
 
index 7b8809020186c9b2d5d725de78f1f325dc537ba8..8ac971ab620dbeff56a253e678af57f00e23572a 100644 (file)
@@ -540,7 +540,6 @@ public class JGitText extends TranslationBundle {
        /***/ public String tagAlreadyExists;
        /***/ public String tagNameInvalid;
        /***/ public String tagOnRepoWithoutHEADCurrentlyNotSupported;
-       /***/ public String targetIsNotSet;
        /***/ public String theFactoryMustNotBeNull;
        /***/ public String timerAlreadyTerminated;
        /***/ public String topologicalSortRequired;