예제 #1
0
 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;
   }
 }
예제 #2
0
  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);
    }
  }
예제 #3
0
 @NotNull
 private Task newIntegrateTask(@NotNull String title, @NotNull MergerFactory mergerFactory) {
   return new SvnIntegrateChangesTask(
       myMergeContext.getVcs(),
       new WorkingCopyInfo(myMergeContext.getWcInfo().getPath(), true),
       mergerFactory,
       parseUrl(myMergeContext.getSourceUrl()),
       title,
       false,
       myMergeContext.getBranchName()) {
     @Override
     public void onFinished() {
       super.onFinished();
       mySemaphore.up();
     }
   };
 }
예제 #4
0
  @NotNull
  private MergerFactory createMergeAllFactory(
      boolean reintegrate, @Nullable WrapperInvertor copyPoint, boolean supportsMergeInfo) {
    long revision =
        copyPoint != null
            ? reintegrate
                ? copyPoint.getWrapped().getTargetRevision()
                : copyPoint.getWrapped().getSourceRevision()
            : -1;

    return (vcs, target, handler, currentBranchUrl, branchName) ->
        new BranchMerger(
            vcs,
            currentBranchUrl,
            myMergeContext.getWcInfo().getPath(),
            handler,
            reintegrate,
            myMergeContext.getBranchName(),
            revision,
            supportsMergeInfo);
  }