List of usage examples for org.eclipse.jgit.merge MergeResult getSequences
public List<S> getSequences()
From source file:com.google.collide.server.shared.merge.JGitMerger.java
License:Open Source License
public static MergeResult formatMerge(org.eclipse.jgit.merge.MergeResult<RawText> results) { int runningIndex = 0; int numLines = 0; List<MergeChunk> mergeChunks = Lists.newArrayList(); MergeChunk currentMergeChunk = null; StringBuilder fileContent = new StringBuilder(); int conflictIndex = 0; for (org.eclipse.jgit.merge.MergeChunk chunk : results) { RawText seq = results.getSequences().get(chunk.getSequenceIndex()); String chunkContent = seq.getString(chunk.getBegin(), chunk.getEnd(), false); if (chunk.getConflictState() == ConflictState.NO_CONFLICT || chunk.getConflictState() == ConflictState.FIRST_CONFLICTING_RANGE) { if (currentMergeChunk != null) { mergeChunks.add(currentMergeChunk); }/*from w ww . j a v a 2s . co m*/ currentMergeChunk = new MergeChunk(); } switch (chunk.getConflictState()) { case NO_CONFLICT: currentMergeChunk.setHasConflict(false); currentMergeChunk.setMergedData(chunkContent); fileContent.append(chunkContent); numLines = chunk.getEnd() - chunk.getBegin(); runningIndex = setRanges(currentMergeChunk, runningIndex, numLines); break; case FIRST_CONFLICTING_RANGE: currentMergeChunk.setHasConflict(true); currentMergeChunk.setChildData(chunkContent); fileContent.append(chunkContent); numLines = chunk.getEnd() - chunk.getBegin(); runningIndex = setRanges(currentMergeChunk, runningIndex, numLines); break; case NEXT_CONFLICTING_RANGE: currentMergeChunk.setParentData(chunkContent); break; } } mergeChunks.add(currentMergeChunk); MergeResult mergeResult = new MergeResult(mergeChunks, (conflictIndex > 0) ? "" : fileContent.toString()); return mergeResult; }