]> source.dussan.org Git - jgit.git/commitdiff
git rev-parse: Add --verify option 36/60836/4
authorThomas Meyer <thomas.mey@web.de>
Thu, 19 Nov 2015 22:14:03 +0000 (23:14 +0100)
committerJonathan Nieder <jrn@google.com>
Thu, 19 Nov 2015 22:47:52 +0000 (17:47 -0500)
Add the --verify option to be more compatible with git

Change-Id: I225a36ecc4711fd2eb9af67ca8fb79681d94c587
Signed-off-by: Thomas Meyer <thomas.mey@web.de>
org.eclipse.jgit.pgm/resources/org/eclipse/jgit/pgm/internal/CLIText.properties
org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/RevParse.java
org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/internal/CLIText.java

index 64afdad51ef1700adb69fb57dc6cc34e703de342..aa32478ff0ac04d3196d494ec1b04fc10d8998b9 100644 (file)
@@ -128,6 +128,7 @@ metaVar_user=USER
 metaVar_version=VERSION
 mostCommonlyUsedCommandsAre=The most commonly used commands are:
 needApprovalToDestroyCurrentRepository=Need approval to destroy current repository
+needSingleRevision=Needed a single revision
 noGitRepositoryConfigured=No Git repository configured.
 noNamesFound=No names found, cannot describe anything.
 noSuchFile=no such file: {0}
index 5530ac5c992d58b3f0b061f397a3ebcaba72c617..4456fd5348ea2085949c4b95e781a514ee477f16 100644 (file)
@@ -1,6 +1,7 @@
 /*
  * Copyright (C) 2009, Daniel Cheng (aka SDiZ) <git@sdiz.net>
  * Copyright (C) 2009, Daniel Cheng (aka SDiZ) <j16sdiz+freenet@gmail.com>
+ * Copyright (C) 2015 Thomas Meyer <thomas@m3y3r.de>
  * and other copyright owners as documented in the project's IP log.
  *
  * This program and the accompanying materials are made available
@@ -51,14 +52,19 @@ import java.util.List;
 import java.util.Map;
 
 import org.kohsuke.args4j.Argument;
+import org.kohsuke.args4j.CmdLineException;
 import org.kohsuke.args4j.Option;
 import org.eclipse.jgit.lib.ObjectId;
 import org.eclipse.jgit.lib.Ref;
+import org.eclipse.jgit.pgm.internal.CLIText;;
 
 @Command(usage = "usage_RevParse")
 class RevParse extends TextBuiltin {
        @Option(name = "--all", usage = "usage_RevParseAll")
-       boolean all = false;
+       boolean all;
+
+       @Option(name = "--verify", usage = "usage_RevParseVerify")
+       boolean verify;
 
        @Argument(index = 0, metaVar = "metaVar_commitish")
        private final List<ObjectId> commits = new ArrayList<ObjectId>();
@@ -67,11 +73,17 @@ class RevParse extends TextBuiltin {
        protected void run() throws Exception {
                if (all) {
                        Map<String, Ref> allRefs = db.getRefDatabase().getRefs(ALL);
-                       for (final Ref r : allRefs.values())
+                       for (final Ref r : allRefs.values()) {
                                outw.println(r.getObjectId().name());
+                       }
                } else {
-                       for (final ObjectId o : commits)
+                       if (verify && commits.size() > 1) {
+                               throw new CmdLineException(CLIText.get().needSingleRevision);
+                       }
+
+                       for (final ObjectId o : commits) {
                                outw.println(o.name());
+                       }
                }
        }
 }
index 433ddf2b13c66b82df8093e014b980b1486c072b..29d48ebd4638dac5b2172983cf826726cfaf5889 100644 (file)
@@ -187,6 +187,7 @@ public class CLIText extends TranslationBundle {
        /***/ public String metaVar_version;
        /***/ public String mostCommonlyUsedCommandsAre;
        /***/ public String needApprovalToDestroyCurrentRepository;
+       /***/ public String needSingleRevision;
        /***/ public String noGitRepositoryConfigured;
        /***/ public String noNamesFound;
        /***/ public String noSuchFile;