private NonNoteEntry mergeNonNotes(NonNoteEntry baseList, NonNoteEntry oursList, NonNoteEntry theirsList) throws IOException { if (baseList == null && oursList == null && theirsList == null) return null; ObjectId baseId = write(baseList); ObjectId oursId = write(oursList); ObjectId theirsId = write(theirsList); inserter.flush(); Merger m = nonNotesMergeStrategy.newMerger(db, true); if (m instanceof ThreeWayMerger) ((ThreeWayMerger) m).setBase(baseId); if (!m.merge(oursId, theirsId)) throw new NotesMergeConflictException(baseList, oursList, theirsList); ObjectId resultTreeId = m.getResultTreeId(); AbbreviatedObjectId none = AbbreviatedObjectId.fromString(""); //$NON-NLS-1$ return NoteParser.parse(none, resultTreeId, reader).nonNotes; }
ThreeWayMerger merger = StrategyResolve.newMerger( repository, true ); merger.merge( headCommit, fetchedCommit );
/** * Create an iterator to walk the merge base. * * @return an iterator over the caller-specified merge base, or the natural * merge base of the two input commits. * @throws java.io.IOException */ protected AbstractTreeIterator mergeBase() throws IOException { if (baseTree != null) return openTree(baseTree); RevCommit baseCommit = (baseCommitId != null) ? walk .parseCommit(baseCommitId) : getBaseCommit(sourceCommits[0], sourceCommits[1]); if (baseCommit == null) { baseCommitId = null; return new EmptyTreeIterator(); } else { baseCommitId = baseCommit.toObjectId(); return openTree(baseCommit.getTree()); } } }
merger.setBase(parent.getTree()); if (merger.merge(head, commit)) { if (AnyObjectId.equals(head.getTree(), merger.getResultTreeId())) return null; tick(1); new org.eclipse.jgit.lib.CommitBuilder(); b.setParentId(head); b.setTreeId(merger.getResultTreeId()); b.setAuthor(commit.getAuthorIdent()); b.setCommitter(new PersonIdent(defaultCommitter, getDate()));
private void canMerge(final Repository repo, final RevCommit commonAncestor, final RevCommit sourceCommitTree, final RevCommit targetCommitTree, final String sourceBranch, final String targetBranch) { try { ThreeWayMerger merger = MergeStrategy.RECURSIVE.newMerger(repo, true); merger.setBase(commonAncestor); boolean canMerge = merger.merge(sourceCommitTree, targetCommitTree); if (!canMerge) { throw new GitException(String.format("Cannot merge braches from <%s> to <%s>, merge conflicts", sourceBranch, targetBranch)); } } catch (IOException e) { throw new GitException(String.format("Cannot merge braches from <%s> to <%s>, merge conflicts", sourceBranch, targetBranch), e); } }
merger.setBase(parent.getTree()); if (merger.merge(head, commit)) { if (AnyObjectId.equals(head.getTree(), merger.getResultTreeId())) return null; tick(1); new org.eclipse.jgit.lib.CommitBuilder(); b.setParentId(head); b.setTreeId(merger.getResultTreeId()); b.setAuthor(commit.getAuthorIdent()); b.setCommitter(new PersonIdent(defaultCommitter, getDate()));
private NonNoteEntry mergeNonNotes(NonNoteEntry baseList, NonNoteEntry oursList, NonNoteEntry theirsList) throws IOException { if (baseList == null && oursList == null && theirsList == null) return null; ObjectId baseId = write(baseList); ObjectId oursId = write(oursList); ObjectId theirsId = write(theirsList); inserter.flush(); Merger m = nonNotesMergeStrategy.newMerger(db, true); if (m instanceof ThreeWayMerger) ((ThreeWayMerger) m).setBase(baseId); if (!m.merge(oursId, theirsId)) throw new NotesMergeConflictException(baseList, oursList, theirsList); ObjectId resultTreeId = m.getResultTreeId(); AbbreviatedObjectId none = AbbreviatedObjectId.fromString(""); //$NON-NLS-1$ return NoteParser.parse(none, resultTreeId, reader).nonNotes; }
/** * Create an iterator to walk the merge base. * * @return an iterator over the caller-specified merge base, or the natural * merge base of the two input commits. * @throws IOException */ protected AbstractTreeIterator mergeBase() throws IOException { if (baseTree != null) return openTree(baseTree); RevCommit baseCommit = (baseCommitId != null) ? walk .parseCommit(baseCommitId) : getBaseCommit(sourceCommits[0], sourceCommits[1]); if (baseCommit == null) { baseCommitId = null; return new EmptyTreeIterator(); } else { baseCommitId = baseCommit.toObjectId(); return openTree(baseCommit.getTree()); } } }
private NonNoteEntry mergeNonNotes(NonNoteEntry baseList, NonNoteEntry oursList, NonNoteEntry theirsList) throws IOException { if (baseList == null && oursList == null && theirsList == null) return null; ObjectId baseId = write(baseList); ObjectId oursId = write(oursList); ObjectId theirsId = write(theirsList); inserter.flush(); Merger m = nonNotesMergeStrategy.newMerger(db, true); if (m instanceof ThreeWayMerger) ((ThreeWayMerger) m).setBase(baseId); if (!m.merge(oursId, theirsId)) throw new NotesMergeConflictException(baseList, oursList, theirsList); ObjectId resultTreeId = m.getResultTreeId(); AbbreviatedObjectId none = AbbreviatedObjectId.fromString(""); //$NON-NLS-1$ return NoteParser.parse(none, resultTreeId, reader).nonNotes; }
/** * Create an iterator to walk the merge base. * * @return an iterator over the caller-specified merge base, or the natural * merge base of the two input commits. * @throws java.io.IOException */ protected AbstractTreeIterator mergeBase() throws IOException { if (baseTree != null) return openTree(baseTree); RevCommit baseCommit = (baseCommitId != null) ? walk .parseCommit(baseCommitId) : getBaseCommit(sourceCommits[0], sourceCommits[1]); if (baseCommit == null) { baseCommitId = null; return new EmptyTreeIterator(); } else { baseCommitId = baseCommit.toObjectId(); return openTree(baseCommit.getTree()); } } }