diff options
Diffstat (limited to 'plugins/git4idea/src/git4idea/commands/GitImpl.java')
-rw-r--r-- | plugins/git4idea/src/git4idea/commands/GitImpl.java | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/plugins/git4idea/src/git4idea/commands/GitImpl.java b/plugins/git4idea/src/git4idea/commands/GitImpl.java index c873e71ff94b..09e254f5392b 100644 --- a/plugins/git4idea/src/git4idea/commands/GitImpl.java +++ b/plugins/git4idea/src/git4idea/commands/GitImpl.java @@ -32,6 +32,7 @@ import git4idea.history.GitHistoryUtils; import git4idea.push.GitPushSpec; import git4idea.repo.GitRemote; import git4idea.repo.GitRepository; +import git4idea.reset.GitResetMode; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -338,20 +339,26 @@ public class GitImpl implements Git { @Override @NotNull - public GitCommandResult resetHard(@NotNull GitRepository repository, @NotNull String revision) { - final GitLineHandler handler = new GitLineHandler(repository.getProject(), repository.getRoot(), GitCommand.RESET); - handler.addParameters("--hard", revision); - return run(handler); + public GitCommandResult reset(@NotNull GitRepository repository, @NotNull GitResetMode mode, @NotNull String target, + @NotNull GitLineHandlerListener... listeners) { + return reset(repository, mode.getArgument(), target, listeners); } @Override @NotNull public GitCommandResult resetMerge(@NotNull GitRepository repository, @Nullable String revision) { + return reset(repository, "--merge", revision); + } + + @NotNull + private static GitCommandResult reset(@NotNull GitRepository repository, @NotNull String argument, @Nullable String target, + @NotNull GitLineHandlerListener... listeners) { final GitLineHandler handler = new GitLineHandler(repository.getProject(), repository.getRoot(), GitCommand.RESET); - handler.addParameters("--merge"); - if (revision != null) { - handler.addParameters(revision); + handler.addParameters(argument); + if (target != null) { + handler.addParameters(target); } + addListeners(handler, listeners); return run(handler); } |