diff options
Diffstat (limited to 'plugins/hg4idea/src/org/zmlx/hg4idea/push/HgPusher.java')
-rw-r--r-- | plugins/hg4idea/src/org/zmlx/hg4idea/push/HgPusher.java | 28 |
1 files changed, 12 insertions, 16 deletions
diff --git a/plugins/hg4idea/src/org/zmlx/hg4idea/push/HgPusher.java b/plugins/hg4idea/src/org/zmlx/hg4idea/push/HgPusher.java index f019035a373f..e3c91e0103d9 100644 --- a/plugins/hg4idea/src/org/zmlx/hg4idea/push/HgPusher.java +++ b/plugins/hg4idea/src/org/zmlx/hg4idea/push/HgPusher.java @@ -18,7 +18,6 @@ package org.zmlx.hg4idea.push; import com.intellij.dvcs.push.PushSpec; import com.intellij.dvcs.push.Pusher; import com.intellij.dvcs.push.VcsPushOptionValue; -import com.intellij.dvcs.repo.Repository; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.text.StringUtil; @@ -37,33 +36,30 @@ import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; -public class HgPusher extends Pusher { +public class HgPusher extends Pusher<HgRepository, HgPushSource, HgTarget> { private static final Logger LOG = Logger.getInstance(HgPusher.class); private static final String ONE = "one"; private static Pattern PUSH_COMMITS_PATTERN = Pattern.compile(".*(?:added|pushed) (\\d+|" + ONE + ") changeset.*"); // hg push command has definite exit values for some cases: // mercurial returns 0 if push was successful, 1 if nothing to push. see hg push --help - private static int PUSH_SUCCEEDED_EXIT_VALUE = 0; - private static int NOTHING_TO_PUSH_EXIT_VALUE = 1; + static int PUSH_SUCCEEDED_EXIT_VALUE = 0; + static int NOTHING_TO_PUSH_EXIT_VALUE = 1; @Override - public void push(@NotNull Map<Repository, PushSpec> pushSpecs, @Nullable VcsPushOptionValue vcsPushOptionValue, boolean force) { - for (Map.Entry<Repository, PushSpec> entry : pushSpecs.entrySet()) { - Repository repository = entry.getKey(); - HgRepository hgRepository = (HgRepository)repository; - PushSpec hgSpec = entry.getValue(); - HgTarget destination = (HgTarget)hgSpec.getTarget(); - if (destination == null) { - continue; - } - HgPushSource source = (HgPushSource)hgSpec.getSource(); + public void push(@NotNull Map<HgRepository, PushSpec<HgPushSource, HgTarget>> pushSpecs, + @Nullable VcsPushOptionValue vcsPushOptionValue, boolean force) { + for (Map.Entry<HgRepository, PushSpec<HgPushSource, HgTarget>> entry : pushSpecs.entrySet()) { + HgRepository repository = entry.getKey(); + PushSpec<HgPushSource, HgTarget> hgSpec = entry.getValue(); + HgTarget destination = hgSpec.getTarget(); + HgPushSource source = hgSpec.getSource(); Project project = repository.getProject(); final HgPushCommand pushCommand = new HgPushCommand(project, repository.getRoot(), destination.myTarget); pushCommand.setIsNewBranch(true); // set always true, because it just allow mercurial to create a new one if needed pushCommand.setForce(force); String branchName = source.getBranch(); - if (branchName.equals(hgRepository.getCurrentBookmark())) { + if (branchName.equals(repository.getCurrentBookmark())) { if (vcsPushOptionValue == HgVcsPushOptionValue.Current) { pushCommand.setBookmarkName(branchName); } @@ -105,7 +101,7 @@ public class HgPusher extends Pusher { }); } - private static int getNumberOfPushedCommits(@NotNull HgCommandResult result) { + static int getNumberOfPushedCommits(@NotNull HgCommandResult result) { int numberOfCommitsInAllSubrepos = 0; final List<String> outputLines = result.getOutputLines(); for (String outputLine : outputLines) { |