diff --git a/plugins/svn4idea/src/org/jetbrains/idea/svn/integrate/BaseMergeTask.java b/plugins/svn4idea/src/org/jetbrains/idea/svn/integrate/BaseMergeTask.java index a1409dd936d9..28cc9b130728 100644 --- a/plugins/svn4idea/src/org/jetbrains/idea/svn/integrate/BaseMergeTask.java +++ b/plugins/svn4idea/src/org/jetbrains/idea/svn/integrate/BaseMergeTask.java @@ -28,7 +28,6 @@ import org.jetbrains.idea.svn.history.SvnChangeList; import java.util.List; import static com.intellij.openapi.application.ApplicationManager.getApplication; -import static com.intellij.util.containers.ContainerUtil.ar; import static java.util.Collections.singletonList; import static org.jetbrains.idea.svn.WorkingCopyFormat.ONE_DOT_EIGHT; @@ -80,8 +79,7 @@ public abstract class BaseMergeTask extends TaskDescriptor { myRunner.ping(); } - @NotNull - protected TaskDescriptor[] getMergeAllTasks(boolean supportsMergeInfo) { + protected void mergeAll(boolean supportsMergeInfo) { // merge info is not supported - branch copy point is used to make first sync merge successful (without unnecessary tree conflicts) // merge info is supported and svn client < 1.8 - branch copy point is used to determine if sync or reintegrate merge should be performed // merge info is supported and svn client >= 1.8 - branch copy point is not used - svn automatically detects if reintegrate is necessary @@ -91,12 +89,13 @@ public abstract class BaseMergeTask extends TaskDescriptor { : new LookForBranchOriginTask(myMergeProcess, true, copyPoint -> next(new MergeAllWithBranchCopyPointTask(myMergeProcess, copyPoint, supportsMergeInfo))); - return ar(new LocalChangesPromptTask(myMergeProcess, null), mergeAllTask); + next(new LocalChangesPromptTask(myMergeProcess, null), mergeAllTask); } - protected void runChangeListsMerge(@NotNull List lists, @NotNull String title) { - next(new LocalChangesPromptTask(myMergeProcess, lists), - new MergeTask(myMergeProcess, new ChangeListsMergerFactory(lists, false, false, true), title)); + protected void merge(@NotNull List lists) { + ChangeListsMergerFactory mergerFactory = new ChangeListsMergerFactory(lists, false, false, true); + + next(new LocalChangesPromptTask(myMergeProcess, lists), new MergeTask(myMergeProcess, mergerFactory, myMergeContext.getTitle())); } protected void end() { diff --git a/plugins/svn4idea/src/org/jetbrains/idea/svn/integrate/CheckRepositorySupportsMergeInfoTask.java b/plugins/svn4idea/src/org/jetbrains/idea/svn/integrate/CheckRepositorySupportsMergeInfoTask.java index 8f6475501555..5225a78aaa9d 100644 --- a/plugins/svn4idea/src/org/jetbrains/idea/svn/integrate/CheckRepositorySupportsMergeInfoTask.java +++ b/plugins/svn4idea/src/org/jetbrains/idea/svn/integrate/CheckRepositorySupportsMergeInfoTask.java @@ -18,7 +18,6 @@ package org.jetbrains.idea.svn.integrate; import com.intellij.util.continuation.Where; import org.jetbrains.annotations.NotNull; -import static com.intellij.util.containers.ContainerUtil.ar; import static org.jetbrains.idea.svn.SvnUtil.checkRepositoryVersion15; public class CheckRepositorySupportsMergeInfoTask extends BaseMergeTask { @@ -29,7 +28,12 @@ public class CheckRepositorySupportsMergeInfoTask extends BaseMergeTask { @Override public void run() { - next(supportsMergeInfo() ? ar(new MergeAllOrSelectedChooserTask(myMergeProcess)) : getMergeAllTasks(false)); + if (supportsMergeInfo()) { + next(new MergeAllOrSelectedChooserTask(myMergeProcess)); + } + else { + mergeAll(false); + } } private boolean supportsMergeInfo() { diff --git a/plugins/svn4idea/src/org/jetbrains/idea/svn/integrate/MergeAllOrSelectedChooserTask.java b/plugins/svn4idea/src/org/jetbrains/idea/svn/integrate/MergeAllOrSelectedChooserTask.java index cf4c195ae44c..6448c4735a74 100644 --- a/plugins/svn4idea/src/org/jetbrains/idea/svn/integrate/MergeAllOrSelectedChooserTask.java +++ b/plugins/svn4idea/src/org/jetbrains/idea/svn/integrate/MergeAllOrSelectedChooserTask.java @@ -26,10 +26,9 @@ public class MergeAllOrSelectedChooserTask extends BaseMergeTask { @Override public void run() { - //noinspection EnumSwitchStatementWhichMissesCases switch (myInteraction.selectMergeVariant()) { case all: - next(getMergeAllTasks(true)); + mergeAll(true); break; case showLatest: next(new MergeCalculatorTask(myMergeProcess, task -> @@ -39,6 +38,7 @@ public class MergeAllOrSelectedChooserTask extends BaseMergeTask { next(new LookForBranchOriginTask(myMergeProcess, false, copyPoint -> next(new MergeCalculatorTask(myMergeProcess, copyPoint, task -> next(new ShowRevisionSelector(myMergeProcess, task.getChangeLists(), task.getMergeChecker(), true, true)))))); + case cancel: break; } } diff --git a/plugins/svn4idea/src/org/jetbrains/idea/svn/integrate/ShowRevisionSelector.java b/plugins/svn4idea/src/org/jetbrains/idea/svn/integrate/ShowRevisionSelector.java index 5d99f4871dc8..f6646b2ddeee 100644 --- a/plugins/svn4idea/src/org/jetbrains/idea/svn/integrate/ShowRevisionSelector.java +++ b/plugins/svn4idea/src/org/jetbrains/idea/svn/integrate/ShowRevisionSelector.java @@ -52,13 +52,13 @@ public class ShowRevisionSelector extends BaseMergeTask { end(); break; case all: - next(getMergeAllTasks(true)); + mergeAll(true); break; default: List lists = result.getSelectedLists(); if (!lists.isEmpty()) { - runChangeListsMerge(lists, myMergeContext.getTitle()); + merge(lists); } break; }