List of usage examples for org.eclipse.jgit.api MergeResult getFailingPaths
public Map<String, MergeFailureReason> getFailingPaths()
From source file:com.microsoft.gittf.core.tasks.PullTask.java
License:Open Source License
private TaskStatus merge(TaskProgressMonitor progressMonitor, int changeset, ObjectId commitId) { try {/*from w w w . j a v a 2 s .c o m*/ getMergeCommand().include( Messages.formatString("PullTask.Merge.CommitNameFormat", Integer.toString(changeset)), //$NON-NLS-1$ commitId); MergeResult mergeResults = getMergeCommand().call(); progressMonitor.endTask(); switch (mergeResults.getMergeStatus()) { case ALREADY_UP_TO_DATE: progressMonitor.displayMessage(Messages.getString("PullTask.Merge.AlreadyUpToDate")); //$NON-NLS-1$ break; case FAST_FORWARD: case MERGED: progressMonitor.displayMessage(Messages.formatString("PullTask.Merge.MergeSuccessfulFormat", //$NON-NLS-1$ ObjectIdUtil.abbreviate(repository, commitId))); break; case CONFLICTING: progressMonitor .displayMessage(Messages.formatString("PullTask.Merge.MergeSuccessfulWithConflictsFormat", //$NON-NLS-1$ ObjectIdUtil.abbreviate(repository, commitId))); displayConflicts(progressMonitor, mergeResults.getConflicts()); break; case FAILED: case NOT_SUPPORTED: progressMonitor.displayMessage(Messages.formatString("PullTask.Merge.FailedFormat", //$NON-NLS-1$ ObjectIdUtil.abbreviate(repository, commitId))); displayFailures(progressMonitor, mergeResults.getFailingPaths()); break; } RepositoryUtil.fixFileAttributes(repository); } catch (Exception e) { log.error("An error occurred while merging.", e); //$NON-NLS-1$ return new TaskStatus(TaskStatus.ERROR, e); } return TaskStatus.OK_STATUS; }
From source file:com.rimerosolutions.ant.git.tasks.MergeTask.java
License:Apache License
@Override public void doExecute() { try {//from www. j a v a2 s . c o m MergeCommand mergeCommand = git.merge().setSquash(squash); mergeCommand.include(mergeCommand.getRepository().getRef(branchname)); setupCredentials(mergeCommand); MergeResult mergeResult = mergeCommand.call(); if (!mergeResult.getMergeStatus().isSuccessful()) { if (mergeResult.getFailingPaths() != null && mergeResult.getFailingPaths().size() > 0) { throw new BuildException(String.format("%s - Failing paths: %s", MESSAGE_MERGE_FAILED, mergeResult.getFailingPaths())); } throw new BuildException( String.format(MESSAGE_MERGE_FAILED_WITH_STATUS, mergeResult.getMergeStatus().name())); } } catch (Exception e) { throw new GitBuildException(String.format(MESSAGE_MERGE_FAILED_WITH_URI, getUri()), e); } }
From source file:org.eclipse.egit.ui.internal.dialogs.RevertFailureDialog.java
License:Open Source License
/** * Show dialog for failure result//from w w w . j a v a2 s . c o m * * @param shell * @param commit * @param result */ public static void show(Shell shell, RevCommit commit, MergeResult result) { String message; Map<String, MergeFailureReason> reasons = result != null ? result.getFailingPaths() : null; if (reasons != null && !reasons.isEmpty()) message = MessageFormat.format(UIText.RevertFailureDialog_Message, commit.abbreviate(7).name()); else message = MessageFormat.format(UIText.RevertFailureDialog_MessageNoFiles, commit.abbreviate(7).name()); RevertFailureDialog dialog = new RevertFailureDialog(shell, message, reasons); dialog.setShellStyle(dialog.getShellStyle() | SWT.SHEET | SWT.RESIZE); dialog.open(); }
From source file:org.eclipse.emf.compare.git.pgm.internal.app.LogicalMergeApplication.java
License:Open Source License
/** * Builds the message to display to the user when the merge ends on a FAILED status. * /*www .j a va2 s . c om*/ * @param mergeResult * The merge result. * @return a message. */ private String getFailedMessage(MergeResult mergeResult) { final StringBuilder errorMessage = new StringBuilder(); List<String> dirtyFiles = Lists.newArrayList(); List<String> notDeletedFiles = Lists.newArrayList(); for (Entry<String, MergeFailureReason> mergeFailure : mergeResult.getFailingPaths().entrySet()) { switch (mergeFailure.getValue()) { case DIRTY_INDEX: case DIRTY_WORKTREE: dirtyFiles.add(mergeFailure.getKey()); break; case COULD_NOT_DELETE: notDeletedFiles.add(mergeFailure.getKey()); break; default: break; } } if (!dirtyFiles.isEmpty()) { errorMessage.append("Your local changes to the following files would be overwritten by merge:" + EOL); errorMessage.append(Joiner.on(EOL).join(dirtyFiles)); errorMessage.append("Please, commit your changes or stash them before you can merge."); } if (!notDeletedFiles.isEmpty()) { errorMessage.append("Could not delete following files:" + EOL); errorMessage.append(Joiner.on(EOL).join(notDeletedFiles)); } errorMessage.append("Aborting." + EOL); return errorMessage.toString(); }
From source file:org.eclipse.ptp.internal.rdt.sync.git.core.GitSyncService.java
License:Open Source License
private void doSyncRL(JGitRepo localRepo, GitRepo remoteRepo, IProgressMonitor monitor) throws RemoteSyncException, MissingConnectionException { RecursiveSubMonitor subMon = RecursiveSubMonitor.convert(monitor, 90); try {/*from www . j a v a 2 s . c o m*/ // Commit remote changes subMon.subTask(Messages.GitSyncService_13); remoteRepo.commitRemoteFiles(subMon.newChild(40)); // Download remote changes subMon.subTask(Messages.GitSyncService_14); try { localRepo.fetch(remoteRepo, subMon.newChild(40)); } catch (TransportException e) { // Fetch can fail simply because the remote branch isn't set up yet. So just return in that case and throw an // exception otherwise. // Even for the first case, however, a proceeding merge will fail (remote ref is not created), so be sure to // always abort and not attempt a merge. if (e.getMessage().startsWith("Remote does not have ")) { //$NON-NLS-1$ return; } else { throw new RemoteSyncException(e); } } // Merge remote changes into local repository subMon.subTask(Messages.GitSyncService_15); try { org.eclipse.jgit.api.MergeResult mergeResult = localRepo.merge(subMon.newChild(10)); if (mergeResult.getFailingPaths() != null) { String message = Messages.GitSyncService_16; for (String s : mergeResult.getFailingPaths().keySet()) { message += System.getProperty("line.separator") + s; //$NON-NLS-1$ } throw new RemoteSyncException(message); } if (localRepo.inUnresolvedMergeState()) { throw new RemoteSyncMergeConflictException(Messages.GitSyncService_8); // Even if we later decide not to throw an exception, it is important not to proceed after a merge conflict. // return; } } catch (GitAPIException e) { throw new RemoteSyncException(e); } catch (IOException e) { throw new RemoteSyncException(e); } } finally { if (monitor != null) { monitor.done(); } } }
From source file:org.exist.git.xquery.Pull.java
License:Open Source License
@Override public Sequence eval(Sequence[] args, Sequence contextSequence) throws XPathException { try {//from w w w . j a v a 2 s . com String localPath = args[0].getStringValue(); if (!(localPath.endsWith("/"))) localPath += File.separator; Git git = Git.open(new Resource(localPath), FS); PullResult answer = git.pull().setCredentialsProvider( new UsernamePasswordCredentialsProvider(args[1].getStringValue(), args[2].getStringValue())) .call(); MemTreeBuilder builder = getContext().getDocumentBuilder(); int nodeNr = builder.startElement(PULL, null); builder.addAttribute(IS_SUCCESSFUL, Boolean.toString(answer.isSuccessful())); MergeResult merge = answer.getMergeResult(); if (merge != null) { builder.startElement(MERGE, null); builder.addAttribute(STATUS, merge.getMergeStatus().toString()); builder.addAttribute(IS_SUCCESSFUL, Boolean.toString(merge.getMergeStatus().isSuccessful())); for (ObjectId commit : merge.getMergedCommits()) { builder.startElement(COMMIT, null); builder.addAttribute(ID, commit.name()); builder.endElement(); } builder.endElement(); if (merge.getConflicts() != null) { for (Entry<String, int[][]> entry : merge.getConflicts().entrySet()) { builder.startElement(CHECKOUT_CONFLICT, null); builder.addAttribute(PATH, entry.getKey()); builder.endElement(); } } if (merge.getCheckoutConflicts() != null) { for (String path : merge.getCheckoutConflicts()) { builder.startElement(CHECKOUT_CONFLICT, null); builder.addAttribute(PATH, path); builder.endElement(); } } if (merge.getFailingPaths() != null) { for (Entry<String, MergeFailureReason> entry : merge.getFailingPaths().entrySet()) { builder.startElement(FAILING_PATH, null); builder.addAttribute(PATH, entry.getKey()); builder.addAttribute(REASON, entry.getValue().name()); builder.endElement(); } } } RebaseResult rebase = answer.getRebaseResult(); if (rebase != null) { builder.startElement(REBASE, null); builder.addAttribute(STATUS, rebase.getStatus().toString()); builder.addAttribute(IS_SUCCESSFUL, Boolean.toString(rebase.getStatus().isSuccessful())); //rebase.getConflicts() if (rebase.getFailingPaths() != null) { for (Entry<String, MergeFailureReason> entry : rebase.getFailingPaths().entrySet()) { builder.startElement(FAILING_PATH, null); builder.addAttribute(PATH, entry.getKey()); builder.addAttribute(REASON, entry.getValue().name()); builder.endElement(); } } builder.endElement(); } return builder.getDocument().getNode(nodeNr); } catch (Throwable e) { e.printStackTrace(); throw new XPathException(this, Module.EXGIT001, e); } }
From source file:org.flowerplatform.web.git.GitUtils.java
License:Open Source License
public String handleMergeResult(MergeResult mergeResult) { StringBuilder sb = new StringBuilder(); if (mergeResult == null) { return sb.toString(); }//from w w w .j a v a 2 s . c o m sb.append("Status: "); sb.append(mergeResult.getMergeStatus()); sb.append("\n"); if (mergeResult.getMergedCommits() != null) { sb.append("\nMerged commits: "); sb.append("\n"); for (ObjectId id : mergeResult.getMergedCommits()) { sb.append(id.getName()); sb.append("\n"); } } if (mergeResult.getCheckoutConflicts() != null) { sb.append("\nConflicts: "); sb.append("\n"); for (String conflict : mergeResult.getCheckoutConflicts()) { sb.append(conflict); sb.append("\n"); } } if (mergeResult.getFailingPaths() != null) { sb.append("\nFailing paths: "); sb.append("\n"); for (String path : mergeResult.getFailingPaths().keySet()) { sb.append(path); sb.append(" -> "); sb.append(mergeResult.getFailingPaths().get(path).toString()); sb.append("\n"); } } return sb.toString(); }
From source file:org.kabir.github.merges.model.GitRepositoryManager.java
License:Open Source License
public void mergeFFOnlyLocalTestingToLocalMain() { BranchManager manager = branchStatus.getManager(); try {/*w ww . j a va 2 s . co m*/ MergeResult result = manager.mergeBranch(manager.getLocalMainName(), manager.getLocalTestingName(), FastForwardMode.FF_ONLY); if (!result.getMergeStatus().isSuccessful()) { facesContext.addMessage(null, new FacesMessage("Error merging " + result.getFailingPaths())); } } catch (GitAPIException e) { facesContext.addMessage(null, new FacesMessage("Error merging " + e.getMessage())); } }
From source file:org.kabir.github.merges.model.MergeManager.java
License:Open Source License
public String closeAndPushMerge() { BranchManager mgr = gitRepositoryManager.getBranchStatus().getManager(); try {/*from w w w .j a v a 2s . c o m*/ MergeResult result = mgr.mergeBranch(mgr.getLocalMainName(), mgr.getLocalTestingName(), FastForwardMode.FF_ONLY); if (!result.getMergeStatus().isSuccessful()) { facesContext.addMessage(null, new FacesMessage("Error merging " + mgr.getTestingName() + " to " + mgr.getMainName() + " testing branch: " + result.getFailingPaths())); return "error"; } } catch (GitAPIException e) { facesContext.addMessage(null, new FacesMessage("Error merging " + mgr.getTestingName() + " to " + mgr.getMainName() + " testing branch: " + e.getMessage())); return "error"; } try { mgr.pushBranch(mgr.getLocalMainName(), false); } catch (GitAPIException e) { facesContext.addMessage(null, new FacesMessage("Error pushing " + mgr.getMainName() + " branch: " + e.getMessage())); } Properties props = setActiveMergeState(MergeState.MERGED); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mmz"); File activeMergeFile = getActiveMergeFile(); File replaced = new File(activeMergeFile.getParentFile(), MERGE_PREFIX + format.format(new Date())); activeMergeFile.renameTo(replaced); List<Integer> ids = readIdsFromProperty(props); for (Integer id : ids) { try { gitRepositoryManager.getGitHubHelper().closeMergedPullRequest(id); } catch (IOException e) { facesContext.addMessage(null, new FacesMessage("Error closing pr " + id + ": " + e.getMessage())); } } return "closed"; }
From source file:org.n52.wps.repository.git.GitAlgorithmRepository.java
License:Open Source License
private void printMergeSummary(PullResult pullResult) { StringBuilder sb = new StringBuilder(); MergeResult result = pullResult.getMergeResult(); sb.append("Merge failed with status ").append(result.getMergeStatus().name()); result.getFailingPaths().entrySet().stream().forEach( failed -> sb.append(failed.getKey()).append(" -> ").append(failed.getValue()).append("\n")); }