Examples of MergeStatus


Examples of com.gitblit.utils.JGitUtils.MergeStatus

    } else {
      // vetos are binding
      allowMerge = ticket.isOpen() && !ticket.isVetoed(patchset);
    }

    MergeStatus mergeStatus = JGitUtils.canMerge(getRepository(), patchset.tip, ticket.mergeTo);
    if (allowMerge) {
      if (MergeStatus.MERGEABLE == mergeStatus) {
        // patchset can be cleanly merged to integration branch OR has already been merged
        Fragment mergePanel = new Fragment("mergePanel", "mergeableFragment", this);
        mergePanel.add(new Label("mergeTitle", MessageFormat.format(getString("gb.patchsetMergeable"), ticket.mergeTo)));
        if (user.canPush(repository)) {
          // user can merge locally
          SimpleAjaxLink<String> mergeButton = new SimpleAjaxLink<String>("mergeButton", Model.of(getString("gb.merge"))) {

            private static final long serialVersionUID = 1L;

            @Override
            public void onClick(AjaxRequestTarget target) {

              // ensure the patchset is still current AND not vetoed
              Patchset patchset = ticket.getCurrentPatchset();
              final TicketModel refreshedTicket = app().tickets().getTicket(getRepositoryModel(), ticket.number);
              if (patchset.equals(refreshedTicket.getCurrentPatchset())) {
                // patchset is current, check for recent veto
                if (!refreshedTicket.isVetoed(patchset)) {
                  // patchset is not vetoed

                  // execute the merge using the ticket service
                  app().tickets().exec(new Runnable() {
                    @Override
                    public void run() {
                      PatchsetReceivePack rp = new PatchsetReceivePack(
                          app().gitblit(),
                          getRepository(),
                          getRepositoryModel(),
                          GitBlitWebSession.get().getUser());
                      MergeStatus result = rp.merge(refreshedTicket);
                      if (MergeStatus.MERGED == result) {
                        // notify participants and watchers
                        rp.sendAll();
                      } else {
                        // merge failure
                        String msg = MessageFormat.format("Failed to merge ticket {0,number,0}: {1}", ticket.number, result.name());
                        logger.error(msg);
                        GitBlitWebSession.get().cacheErrorMessage(msg);
                      }
                    }
                  });
View Full Code Here

Examples of com.gitblit.utils.JGitUtils.MergeStatus

      }
      mergeBase = JGitUtils.getCommit(getRepository(), base);
    }

    // ensure that the patchset can be cleanly merged right now
    MergeStatus status = JGitUtils.canMerge(getRepository(), tipCommit.getName(), forBranch);
    switch (status) {
    case ALREADY_MERGED:
      sendError("");
      sendError("You have already merged this patchset.", forBranch);
      sendError("");
View Full Code Here

Examples of com.gitblit.utils.JGitUtils.MergeStatus

    } else {
      // vetos are binding
      allowMerge = ticket.isOpen() && !ticket.isVetoed(patchset);
    }

    MergeStatus mergeStatus = JGitUtils.canMerge(getRepository(), patchset.tip, ticket.mergeTo);
    if (allowMerge) {
      if (MergeStatus.MERGEABLE == mergeStatus) {
        // patchset can be cleanly merged to integration branch OR has already been merged
        Fragment mergePanel = new Fragment("mergePanel", "mergeableFragment", this);
        mergePanel.add(new Label("mergeTitle", MessageFormat.format(getString("gb.patchsetMergeable"), ticket.mergeTo)));
        if (user.canPush(repository)) {
          // user can merge locally
          SimpleAjaxLink<String> mergeButton = new SimpleAjaxLink<String>("mergeButton", Model.of(getString("gb.merge"))) {

            private static final long serialVersionUID = 1L;

            @Override
            public void onClick(AjaxRequestTarget target) {

              // ensure the patchset is still current AND not vetoed
              Patchset patchset = ticket.getCurrentPatchset();
              final TicketModel refreshedTicket = app().tickets().getTicket(getRepositoryModel(), ticket.number);
              if (patchset.equals(refreshedTicket.getCurrentPatchset())) {
                // patchset is current, check for recent veto
                if (!refreshedTicket.isVetoed(patchset)) {
                  // patchset is not vetoed

                  // execute the merge using the ticket service
                  app().tickets().exec(new Runnable() {
                    @Override
                    public void run() {
                      PatchsetReceivePack rp = new PatchsetReceivePack(
                          app().gitblit(),
                          getRepository(),
                          getRepositoryModel(),
                          GitBlitWebSession.get().getUser());
                      MergeStatus result = rp.merge(refreshedTicket);
                      if (MergeStatus.MERGED == result) {
                        // notify participants and watchers
                        rp.sendAll();
                      } else {
                        // merge failure
                        String msg = MessageFormat.format("Failed to merge ticket {0,number,0}: {1}", ticket.number, result.name());
                        logger.error(msg);
                        GitBlitWebSession.get().cacheErrorMessage(msg);
                      }
                    }
                  });
View Full Code Here

Examples of com.gitblit.utils.JGitUtils.MergeStatus

      }
      mergeBase = JGitUtils.getCommit(getRepository(), base);
    }

    // ensure that the patchset can be cleanly merged right now
    MergeStatus status = JGitUtils.canMerge(getRepository(), tipCommit.getName(), forBranch);
    switch (status) {
    case ALREADY_MERGED:
      sendError("");
      sendError("You have already merged this patchset.", forBranch);
      sendError("");
View Full Code Here

Examples of org.eclipse.jgit.api.MergeResult.MergeStatus

            srcCommit.getTree());
        dco.setFailOnConflict(true);
        dco.checkout();
        String msg = null;
        ObjectId newHead, base = null;
        MergeStatus mergeStatus = null;
        if (!squash) {
          updateHead(refLogMessage, srcCommit, headId);
          newHead = base = srcCommit;
          mergeStatus = MergeStatus.FAST_FORWARD;
        } else {
          msg = JGitText.get().squashCommitNotUpdatingHEAD;
          newHead = base = headId;
          mergeStatus = MergeStatus.FAST_FORWARD_SQUASHED;
          List<RevCommit> squashedCommits = RevWalkUtils.find(
              revWalk, srcCommit, headCommit);
          String squashMessage = new SquashMessageFormatter().format(
              squashedCommits, head);
          repo.writeSquashCommitMsg(squashMessage);
        }
        setCallable(false);
        return new MergeResult(newHead, base, new ObjectId[] {
            headCommit, srcCommit }, mergeStatus, mergeStrategy,
            null, msg);
      } else {
        if (fastForwardMode == FastForwardMode.FF_ONLY) {
          return new MergeResult(headCommit, srcCommit,
              new ObjectId[] { headCommit, srcCommit },
              MergeStatus.ABORTED, mergeStrategy, null, null);
        }
        String mergeMessage = "";
        if (!squash) {
          mergeMessage = new MergeMessageFormatter().format(
              commits, head);
          repo.writeMergeCommitMsg(mergeMessage);
          repo.writeMergeHeads(Arrays.asList(ref.getObjectId()));
        } else {
          List<RevCommit> squashedCommits = RevWalkUtils.find(
              revWalk, srcCommit, headCommit);
          String squashMessage = new SquashMessageFormatter().format(
              squashedCommits, head);
          repo.writeSquashCommitMsg(squashMessage);
        }
        Merger merger = mergeStrategy.newMerger(repo);
        boolean noProblems;
        Map<String, org.eclipse.jgit.merge.MergeResult<?>> lowLevelResults = null;
        Map<String, MergeFailureReason> failingPaths = null;
        List<String> unmergedPaths = null;
        if (merger instanceof ResolveMerger) {
          ResolveMerger resolveMerger = (ResolveMerger) merger;
          resolveMerger.setCommitNames(new String[] {
              "BASE", "HEAD", ref.getName() });
          resolveMerger.setWorkingTreeIterator(new FileTreeIterator(repo));
          noProblems = merger.merge(headCommit, srcCommit);
          lowLevelResults = resolveMerger
              .getMergeResults();
          failingPaths = resolveMerger.getFailingPaths();
          unmergedPaths = resolveMerger.getUnmergedPaths();
        } else
          noProblems = merger.merge(headCommit, srcCommit);
        refLogMessage.append(": Merge made by ");
        if (!revWalk.isMergedInto(headCommit, srcCommit))
          refLogMessage.append(mergeStrategy.getName());
        else
          refLogMessage.append("recursive");
        refLogMessage.append('.');
        if (noProblems) {
          dco = new DirCacheCheckout(repo,
              headCommit.getTree(), repo.lockDirCache(),
              merger.getResultTreeId());
          dco.setFailOnConflict(true);
          dco.checkout();

          String msg = null;
          RevCommit newHead = null;
          MergeStatus mergeStatus = null;
          if (!squash) {
            newHead = new Git(getRepository()).commit()
              .setReflogComment(refLogMessage.toString()).call();
            mergeStatus = MergeStatus.MERGED;
          } else {
View Full Code Here

Examples of org.eclipse.jgit.api.MergeResult.MergeStatus

            srcCommit.getTree());
        dco.setFailOnConflict(true);
        dco.checkout();
        String msg = null;
        ObjectId newHead, base = null;
        MergeStatus mergeStatus = null;
        if (!squash) {
          updateHead(refLogMessage, srcCommit, headId);
          newHead = base = srcCommit;
          mergeStatus = MergeStatus.FAST_FORWARD;
        } else {
          msg = JGitText.get().squashCommitNotUpdatingHEAD;
          newHead = base = headId;
          mergeStatus = MergeStatus.FAST_FORWARD_SQUASHED;
          List<RevCommit> squashedCommits = RevWalkUtils.find(
              revWalk, srcCommit, headCommit);
          String squashMessage = new SquashMessageFormatter().format(
              squashedCommits, head);
          repo.writeSquashCommitMsg(squashMessage);
        }
        setCallable(false);
        return new MergeResult(newHead, base, new ObjectId[] {
            headCommit, srcCommit }, mergeStatus, mergeStrategy,
            null, msg);
      } else {
        if (fastForwardMode == FastForwardMode.FF_ONLY) {
          return new MergeResult(headCommit, srcCommit,
              new ObjectId[] { headCommit, srcCommit },
              MergeStatus.ABORTED, mergeStrategy, null, null);
        }
        String mergeMessage = ""; //$NON-NLS-1$
        if (!squash) {
          if (message != null)
            mergeMessage = message;
          else
            mergeMessage = new MergeMessageFormatter().format(
              commits, head);
          repo.writeMergeCommitMsg(mergeMessage);
          repo.writeMergeHeads(Arrays.asList(ref.getObjectId()));
        } else {
          List<RevCommit> squashedCommits = RevWalkUtils.find(
              revWalk, srcCommit, headCommit);
          String squashMessage = new SquashMessageFormatter().format(
              squashedCommits, head);
          repo.writeSquashCommitMsg(squashMessage);
        }
        Merger merger = mergeStrategy.newMerger(repo);
        boolean noProblems;
        Map<String, org.eclipse.jgit.merge.MergeResult<?>> lowLevelResults = null;
        Map<String, MergeFailureReason> failingPaths = null;
        List<String> unmergedPaths = null;
        if (merger instanceof ResolveMerger) {
          ResolveMerger resolveMerger = (ResolveMerger) merger;
          resolveMerger.setCommitNames(new String[] {
              "BASE", "HEAD", ref.getName() }); //$NON-NLS-1$ //$NON-NLS-2$
          resolveMerger.setWorkingTreeIterator(new FileTreeIterator(repo));
          noProblems = merger.merge(headCommit, srcCommit);
          lowLevelResults = resolveMerger
              .getMergeResults();
          failingPaths = resolveMerger.getFailingPaths();
          unmergedPaths = resolveMerger.getUnmergedPaths();
        } else
          noProblems = merger.merge(headCommit, srcCommit);
        refLogMessage.append(": Merge made by "); //$NON-NLS-1$
        if (!revWalk.isMergedInto(headCommit, srcCommit))
          refLogMessage.append(mergeStrategy.getName());
        else
          refLogMessage.append("recursive"); //$NON-NLS-1$
        refLogMessage.append('.');
        if (noProblems) {
          dco = new DirCacheCheckout(repo,
              headCommit.getTree(), repo.lockDirCache(),
              merger.getResultTreeId());
          dco.setFailOnConflict(true);
          dco.checkout();

          String msg = null;
          ObjectId newHeadId = null;
          MergeStatus mergeStatus = null;
          if (!commit && squash) {
            mergeStatus = MergeStatus.MERGED_SQUASHED_NOT_COMMITTED;
          }
          if (!commit && !squash) {
            mergeStatus = MergeStatus.MERGED_NOT_COMMITTED;
View Full Code Here

Examples of org.eclipse.jgit.api.MergeResult.MergeStatus

    String newRefId2 = remoteBranch2.getString(ProtocolConstants.KEY_ID);

    // clone2: merge into HEAD, "git merge origin/master"
    gitHeadUri2 = remoteBranch2.getString(GitConstants.KEY_HEAD);
    JSONObject merge = merge(gitHeadUri2, newRefId2);
    MergeStatus mergeResult = MergeStatus.valueOf(merge.getString(GitConstants.KEY_RESULT));
    assertEquals(MergeStatus.FAST_FORWARD, mergeResult);

    // clone2: assert change from clone1 is in place
    JSONObject testTxt2 = getChild(project2, "test.txt");
    request = getGetRequest(testTxt2.getString(ProtocolConstants.KEY_LOCATION));
View Full Code Here

Examples of org.eclipse.jgit.api.MergeResult.MergeStatus

    String newRefId2 = remoteBranch2.getString(ProtocolConstants.KEY_ID);

    // clone2: merge into HEAD, "git merge origin/master"
    gitCommitUri2 = remoteBranch2.getString(GitConstants.KEY_HEAD);
    JSONObject merge = merge(gitCommitUri2, newRefId2);
    MergeStatus mergeResult = MergeStatus.valueOf(merge.getString(GitConstants.KEY_RESULT));
    assertEquals(MergeStatus.FAST_FORWARD, mergeResult);

    // clone2: assert change from clone1 is in place
    JSONObject testTxt2 = getChild(project2, "test.txt");
    request = getGetRequest(testTxt2.getString(ProtocolConstants.KEY_LOCATION));
View Full Code Here

Examples of org.eclipse.jgit.api.MergeResult.MergeStatus

      IStatus fetchStatus = FetchJob.handleFetchResult(fetchResult);
      if (!fetchStatus.isOK()) {
        return fetchStatus;
      }

      MergeStatus mergeStatus = pullResult.getMergeResult().getMergeStatus();
      if (!mergeStatus.isSuccessful())
        return new Status(IStatus.ERROR, GitActivator.PI_GIT, mergeStatus.name());
    } finally {
      if (db != null) {
        db.close();
      }
    }
View Full Code Here

Examples of org.eclipse.jgit.api.MergeResult.MergeStatus

    assertNotNull(gitSection);
    String gitHeadUri = gitSection.getString(GitConstants.KEY_HEAD);

    // "git merge master"
    JSONObject merge = merge(gitHeadUri, Constants.MASTER);
    MergeStatus mergeResult = MergeStatus.valueOf(merge.getString(GitConstants.KEY_RESULT));
    assertEquals(MergeStatus.ALREADY_UP_TO_DATE, mergeResult);
  }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.