@CalledInAny public void end(@NotNull String message, boolean isError) { LOG.info((isError ? "Error: " : "Info: ") + message); clear(); getApplication().invokeLater(() -> myInteraction.showErrors(message, isError)); }
private void selectMergeVariant() { switch (myInteraction.selectMergeVariant()) { case all: mergeAll(true); break; case showLatest: runInBackground( "Loading recent " + myMergeContext.getBranchName() + " revisions", new MergeCalculatorTask( this, null, task -> runInEdt(() -> selectRevisionsToMerge(task, false)))); break; case select: runInBackground( "Looking for branch origin", new LookForBranchOriginTask( this, false, copyPoint -> runInBackground( "Filtering " + myMergeContext.getBranchName() + " revisions", new MergeCalculatorTask( this, copyPoint, task -> runInEdt(() -> selectRevisionsToMerge(task, true)))))); case cancel: break; } }
private void checkReintegrateIsAllowedAndMergeAll( @Nullable WrapperInvertor copyPoint, boolean supportsMergeInfo) { boolean reintegrate = copyPoint != null && copyPoint.isInvertedSense(); if (!reintegrate || myInteraction.shouldReintegrate(copyPoint.inverted().getTarget())) { MergerFactory mergerFactory = createMergeAllFactory(reintegrate, copyPoint, supportsMergeInfo); String title = "Merging all from " + myMergeContext.getBranchName() + (reintegrate ? " (reintegrate)" : ""); merge(title, mergerFactory, null); } }
private void selectRevisionsToMerge( @NotNull MergeCalculatorTask task, boolean allStatusesCalculated) { SelectMergeItemsResult result = myInteraction.selectMergeItems( task.getChangeLists(), task.getMergeChecker(), allStatusesCalculated, task.areAllListsLoaded()); switch (result.getResultCode()) { case all: mergeAll(true); break; case select: case showLatest: merge(result.getSelectedLists()); break; case cancel: break; } }
@CalledInAwt public void execute() { FileDocumentManager.getInstance().saveAllDocuments(); mySemaphore.down(); runInEdt( () -> { if (areInSameHierarchy( createUrl(myMergeContext.getSourceUrl()), myMergeContext.getWcInfo().getUrl())) { end("Cannot merge from self", true); } else if (!hasSwitchedRoots() || myInteraction.shouldContinueSwitchedRootFound()) { runInBackground( "Checking repository capabilities", indicator -> { if (supportsMergeInfo()) { runInEdt(this::selectMergeVariant); } else { mergeAll(false); } }); } }); }
@Override public void showErrors() { if (!myExceptions.isEmpty()) { myInteraction.showErrors(myMergeContext.getTitle(), myExceptions); } }