summaryrefslogtreecommitdiffstats
path: root/org.eclipse.jgit.pgm
diff options
context:
space:
mode:
authorKaloyan Raev <kaloyan.r@zend.com>2015-09-25 14:39:52 +0300
committerKaloyan Raev <kaloyan.r@zend.com>2015-10-29 11:58:08 +0200
commit96811c957ebdee29c8f1ba9be1039a2fcc63adb0 (patch)
tree241c3a21da310c7e15c262925d98efccbb6b576c /org.eclipse.jgit.pgm
parent79a7dd026fa393fa3c66e945839e9faef744be2f (diff)
downloadjgit-96811c957ebdee29c8f1ba9be1039a2fcc63adb0.tar.gz
jgit-96811c957ebdee29c8f1ba9be1039a2fcc63adb0.zip
reset command should support the -- <paths> parameters
Bug: 480750 Change-Id: Ia85b1aead03dcf2fcb50ce0391b656f7c60a08d4 Signed-off-by: Kaloyan Raev <kaloyan.r@zend.com>
Diffstat (limited to 'org.eclipse.jgit.pgm')
-rw-r--r--org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Reset.java35
1 files changed, 24 insertions, 11 deletions
diff --git a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Reset.java b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Reset.java
index 6d1b1c5481..6ba076290e 100644
--- a/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Reset.java
+++ b/org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Reset.java
@@ -43,11 +43,15 @@
package org.eclipse.jgit.pgm;
+import java.util.ArrayList;
+import java.util.List;
+
import org.eclipse.jgit.api.Git;
import org.eclipse.jgit.api.ResetCommand;
import org.eclipse.jgit.api.ResetCommand.ResetType;
import org.kohsuke.args4j.Argument;
import org.kohsuke.args4j.Option;
+import org.kohsuke.args4j.spi.StopOptionHandler;
@Command(common = true, usage = "usage_reset")
class Reset extends TextBuiltin {
@@ -61,24 +65,33 @@ class Reset extends TextBuiltin {
@Option(name = "--hard", usage = "usage_resetHard")
private boolean hard = false;
- @Argument(required = true, metaVar = "metaVar_name", usage = "usage_reset")
+ @Argument(required = true, index = 0, metaVar = "metaVar_name", usage = "usage_reset")
private String commit;
+ @Argument(index = 1)
+ @Option(name = "--", metaVar = "metaVar_paths", multiValued = true, handler = StopOptionHandler.class)
+ private List<String> paths = new ArrayList<String>();
+
@Override
protected void run() throws Exception {
try (Git git = new Git(db)) {
ResetCommand command = git.reset();
command.setRef(commit);
- ResetType mode = null;
- if (soft)
- mode = selectMode(mode, ResetType.SOFT);
- if (mixed)
- mode = selectMode(mode, ResetType.MIXED);
- if (hard)
- mode = selectMode(mode, ResetType.HARD);
- if (mode == null)
- throw die("no reset mode set");
- command.setMode(mode);
+ if (paths.size() > 0) {
+ for (String path : paths)
+ command.addPath(path);
+ } else {
+ ResetType mode = null;
+ if (soft)
+ mode = selectMode(mode, ResetType.SOFT);
+ if (mixed)
+ mode = selectMode(mode, ResetType.MIXED);
+ if (hard)
+ mode = selectMode(mode, ResetType.HARD);
+ if (mode == null)
+ throw die("no reset mode set");
+ command.setMode(mode);
+ }
command.call();
}
}