summaryrefslogtreecommitdiff
path: root/plugins/hg4idea/src/org/zmlx/hg4idea/push/HgPusher.java
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/hg4idea/src/org/zmlx/hg4idea/push/HgPusher.java')
-rw-r--r--plugins/hg4idea/src/org/zmlx/hg4idea/push/HgPusher.java28
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) {