From e900069b85d3b9379e4517fe76c8fa1e6dc4ac74 Mon Sep 17 00:00:00 2001 From: Konstantin Kolosovsky Date: Fri, 30 Sep 2016 17:01:54 +0300 Subject: [PATCH] svn: Moved "MergeCalculatorTask.myMergeChecker" preparation to pooled thread --- .../MergeAllOrSelectedChooserTask.java | 23 ++----------------- .../svn/integrate/MergeCalculatorTask.java | 7 +++--- 2 files changed, 6 insertions(+), 24 deletions(-) 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 d0d24332658f..192847bc27bd 100644 --- a/plugins/svn4idea/src/org/jetbrains/idea/svn/integrate/MergeAllOrSelectedChooserTask.java +++ b/plugins/svn4idea/src/org/jetbrains/idea/svn/integrate/MergeAllOrSelectedChooserTask.java @@ -15,11 +15,9 @@ */ package org.jetbrains.idea.svn.integrate; -import com.intellij.openapi.vcs.VcsException; import com.intellij.util.continuation.TaskDescriptor; import com.intellij.util.continuation.Where; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; public class MergeAllOrSelectedChooserTask extends BaseMergeTask { @@ -41,11 +39,8 @@ public class MergeAllOrSelectedChooserTask extends BaseMergeTask { next(loader, dialog); break; case select: - MergeCalculatorTask calculator = getMergeCalculatorTask(); - - if (calculator != null) { - next(getCalculateFirstCopyPointTask(calculator), calculator); - } + MergeCalculatorTask calculator = new MergeCalculatorTask(myMergeProcess); + next(getCalculateFirstCopyPointTask(calculator), calculator); break; } } @@ -56,18 +51,4 @@ public class MergeAllOrSelectedChooserTask extends BaseMergeTask { .getFirstCopyPointTask(myMergeContext.getWcInfo().getRepositoryRoot(), myMergeContext.getWcInfo().getRootUrl(), myMergeContext.getSourceUrl(), mergeCalculator); } - - @Nullable - private MergeCalculatorTask getMergeCalculatorTask() { - MergeCalculatorTask result = null; - - try { - result = new MergeCalculatorTask(myMergeProcess); - } - catch (VcsException e) { - end(e); - } - - return result; - } } diff --git a/plugins/svn4idea/src/org/jetbrains/idea/svn/integrate/MergeCalculatorTask.java b/plugins/svn4idea/src/org/jetbrains/idea/svn/integrate/MergeCalculatorTask.java index b0976aa13422..0d4ac8ee3094 100644 --- a/plugins/svn4idea/src/org/jetbrains/idea/svn/integrate/MergeCalculatorTask.java +++ b/plugins/svn4idea/src/org/jetbrains/idea/svn/integrate/MergeCalculatorTask.java @@ -53,22 +53,23 @@ public class MergeCalculatorTask extends BaseMergeTask myCopyData.set(value); } - public MergeCalculatorTask(@NotNull QuickMerge mergeProcess) throws VcsException { + public MergeCalculatorTask(@NotNull QuickMerge mergeProcess) { super(mergeProcess, "Calculating not merged revisions", Where.POOLED); // TODO: Previously it was configurable - either to use OneShotMergeInfoHelper or BranchInfo as merge checker, but later that logic // TODO: was commented (in 80ebdbfea5210f6c998e67ddf28ca9c670fa4efe on 5/28/2010). // TODO: Still check if we need to preserve such configuration or it is sufficient to always use OneShotMergeInfoHelper. myMergeChecker = new OneShotMergeInfoHelper(myMergeContext); - myMergeChecker.prepare(); myCopyData = new AtomicReference<>(); } @Override - public void run() { + public void run() throws VcsException { SvnBranchPointsCalculator.WrapperInvertor copyPoint = getCopyPoint(); if (copyPoint != null && myMergeContext.getWcInfo().getFormat().supportsMergeInfo()) { + myMergeChecker.prepare(); + List> afterCopyPointChangeLists = getChangeListsAfter(copyPoint.getTrue().getTargetRevision()); List notMergedChangeLists = getNotMergedChangeLists(afterCopyPointChangeLists);