diff options
author | Kaloyan Raev <kaloyan.r@zend.com> | 2015-09-25 14:39:52 +0300 |
---|---|---|
committer | Kaloyan Raev <kaloyan.r@zend.com> | 2015-10-29 11:58:08 +0200 |
commit | 96811c957ebdee29c8f1ba9be1039a2fcc63adb0 (patch) | |
tree | 241c3a21da310c7e15c262925d98efccbb6b576c /org.eclipse.jgit.pgm | |
parent | 79a7dd026fa393fa3c66e945839e9faef744be2f (diff) | |
download | jgit-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.java | 35 |
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(); } } |