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; }
private void checkoutFiles(Merger merger) throws IOException { AnyObjectId treeId = merger.getResultTreeId(); checkout(gfs, treeId); }
private void checkoutFiles(Merger merger) throws IOException { AnyObjectId treeId = merger.getResultTreeId(); checkout(gfs, treeId); }
dco = new DirCacheCheckout(repo, headCommit.getTree(), repo.lockDirCache(), merger.getResultTreeId()); dco.setFailOnConflict(true); dco.setProgressMonitor(monitor);
@Nonnull private Result updateFileSystemStatus(GfsStatusProvider.Update update, Merger merger) throws IOException { AnyObjectId treeId = merger.getResultTreeId(); checkout(gfs, treeId); RevCommit newCommit = null; if(commit && !squash) { prepareCommitter(); newCommit = createCommit(message, treeId, committer, committer, Arrays.asList(headCommit, sourceHeadCommit), repo); BranchUtils.merge(branch, newCommit, sourceRef, "Merge made by " + strategy.getName() + ".", repo); update.commit(newCommit); } if(!commit) { update.mergeNote(MergeNote.mergeNoCommit(sourceHeadCommit, message)); return Result.mergedNotCommitted(); } if(squash) { update.mergeNote(MergeNote.mergeSquash(message)); return Result.mergedSquashed(); } return Result.merged(newCommit); }
@Nonnull private Result updateFileSystemStatus(GfsStatusProvider.Update update, Merger merger) throws IOException { AnyObjectId treeId = merger.getResultTreeId(); checkout(gfs, treeId); RevCommit newCommit = null; if(commit && !squash) { prepareCommitter(); newCommit = createCommit(message, treeId, committer, committer, Arrays.asList(headCommit, sourceHeadCommit), repo); BranchUtils.merge(branch, newCommit, sourceRef, "Merge made by " + strategy.getName() + ".", repo); update.commit(newCommit); } if(!commit) { update.mergeNote(MergeNote.mergeNoCommit(sourceHeadCommit, message)); return Result.mergedNotCommitted(); } if(squash) { update.mergeNote(MergeNote.mergeSquash(message)); return Result.mergedSquashed(); } return Result.merged(newCommit); }
@Nullable public static ObjectId merge(Repository repository, ObjectId source, ObjectId target, boolean squash, PersonIdent committer, String commitMessage) { try ( RevWalk revWalk = new RevWalk(repository); ObjectInserter inserter = repository.newObjectInserter();) { RevCommit sourceCommit = revWalk.parseCommit(source); RevCommit targetCommit = revWalk.parseCommit(target); Merger merger = MergeStrategy.RECURSIVE.newMerger(repository, true); if (merger.merge(targetCommit, sourceCommit)) { CommitBuilder mergedCommit = new CommitBuilder(); mergedCommit.setAuthor(sourceCommit.getAuthorIdent()); mergedCommit.setCommitter(committer); if (squash) mergedCommit.setParentId(targetCommit); else mergedCommit.setParentIds(targetCommit, sourceCommit); mergedCommit.setMessage(commitMessage); mergedCommit.setTreeId(merger.getResultTreeId()); ObjectId mergedCommitId = inserter.insert(mergedCommit); inserter.flush(); return mergedCommitId; } else { return null; } } catch (IOException e) { throw new RuntimeException(e); } }
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; }
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; }
refLogMessage.append('.'); if (noProblems) { dco = new DirCacheCheckout(repo, headCommit.getTree(), repo.lockDirCache(), merger.getResultTreeId()); dco.setFailOnConflict(true); dco.checkout();
dco = new DirCacheCheckout(repo, headCommit.getTree(), repo.lockDirCache(), merger.getResultTreeId()); dco.setFailOnConflict(true); dco.checkout();
dco = new DirCacheCheckout(repo, headCommit.getTree(), repo.lockDirCache(), merger.getResultTreeId()); dco.setFailOnConflict(true); dco.setProgressMonitor(monitor);