/** * Formats the results of a merge of {@link org.eclipse.jgit.diff.RawText} * objects in a Git conformant way. This method also assumes that the * {@link org.eclipse.jgit.diff.RawText} objects being merged are line * oriented files which use LF as delimiter. This method will also use LF to * separate chunks and conflict metadata, therefore it fits only to texts * that are LF-separated lines. * * @param out * the output stream where to write the textual presentation * @param res * the merge result which should be presented * @param seqName * When a conflict is reported each conflicting range will get a * name. This name is following the "<<<<<<< * " or ">>>>>>> " conflict markers. The * names for the sequences are given in this list * @param charset * the character set used when writing conflict metadata * @throws java.io.IOException * @since 5.2 */ public void formatMerge(OutputStream out, MergeResult<RawText> res, List<String> seqName, Charset charset) throws IOException { new MergeFormatterPass(out, res, seqName, charset).formatMerge(); }
private void writeConflictMetadata(MergeChunk chunk) throws IOException { if (lastConflictingName != null && chunk.getConflictState() != ConflictState.NEXT_CONFLICTING_RANGE) { // found the end of an conflict writeConflictEnd(); } if (chunk.getConflictState() == ConflictState.FIRST_CONFLICTING_RANGE) { // found the start of an conflict writeConflictStart(chunk); } else if (chunk.getConflictState() == ConflictState.NEXT_CONFLICTING_RANGE) { // found another conflicting chunk writeConflictChange(chunk); } }
void formatMerge() throws IOException { boolean missingNewlineAtEnd = false; for (MergeChunk chunk : res) { RawText seq = res.getSequences().get(chunk.getSequenceIndex()); writeConflictMetadata(chunk); // the lines with conflict-metadata are written. Now write the chunk for (int i = chunk.getBegin(); i < chunk.getEnd(); i++) writeLine(seq, i); missingNewlineAtEnd = seq.isMissingNewlineAtEnd(); } // one possible leftover: if the merge result ended with a conflict we // have to close the last conflict here if (lastConflictingName != null) writeConflictEnd(); if (!missingNewlineAtEnd) out.beginln(); }
private void writeConflictEnd() throws IOException { writeln(">>>>>>> " + lastConflictingName); //$NON-NLS-1$ lastConflictingName = null; }
private void writeConflictChange(MergeChunk chunk) throws IOException { /* * In case of a non-three-way merge I'll add the name of the conflicting * chunk behind the equal signs. I also append the name of the last * conflicting chunk after the ending greater-than signs. If somebody * knows a better notation to present non-three-way merges - feel free * to correct here. */ lastConflictingName = seqName.get(chunk.getSequenceIndex()); writeln(threeWayMerge ? "=======" : "======= " //$NON-NLS-1$ //$NON-NLS-2$ + lastConflictingName); }
private void writeConflictMetadata(MergeChunk chunk) throws IOException { if (lastConflictingName != null && chunk.getConflictState() != ConflictState.NEXT_CONFLICTING_RANGE) { // found the end of an conflict writeConflictEnd(); } if (chunk.getConflictState() == ConflictState.FIRST_CONFLICTING_RANGE) { // found the start of an conflict writeConflictStart(chunk); } else if (chunk.getConflictState() == ConflictState.NEXT_CONFLICTING_RANGE) { // found another conflicting chunk writeConflictChange(chunk); } }
void formatMerge() throws IOException { boolean missingNewlineAtEnd = false; for (MergeChunk chunk : res) { RawText seq = res.getSequences().get(chunk.getSequenceIndex()); writeConflictMetadata(chunk); // the lines with conflict-metadata are written. Now write the chunk for (int i = chunk.getBegin(); i < chunk.getEnd(); i++) writeLine(seq, i); missingNewlineAtEnd = seq.isMissingNewlineAtEnd(); } // one possible leftover: if the merge result ended with a conflict we // have to close the last conflict here if (lastConflictingName != null) writeConflictEnd(); if (!missingNewlineAtEnd) out.beginln(); }
/** * Formats the results of a merge of {@link RawText} objects in a Git * conformant way. This method also assumes that the {@link RawText} objects * being merged are line oriented files which use LF as delimiter. This * method will also use LF to separate chunks and conflict metadata, * therefore it fits only to texts that are LF-separated lines. * * @param out * the outputstream where to write the textual presentation * @param res * the merge result which should be presented * @param seqName * When a conflict is reported each conflicting range will get a * name. This name is following the "<<<<<<< " or ">>>>>>> " * conflict markers. The names for the sequences are given in * this list * @param charsetName * the name of the characterSet used when writing conflict * metadata * @throws IOException */ public void formatMerge(OutputStream out, MergeResult<RawText> res, List<String> seqName, String charsetName) throws IOException { new MergeFormatterPass(out, res, seqName, charsetName).formatMerge(); }
private void writeConflictStart(MergeChunk chunk) throws IOException { lastConflictingName = seqName.get(chunk.getSequenceIndex()); writeln("<<<<<<< " + lastConflictingName); //$NON-NLS-1$ }
private void writeConflictMetadata(MergeChunk chunk) throws IOException { if (lastConflictingName != null && chunk.getConflictState() != ConflictState.NEXT_CONFLICTING_RANGE) { // found the end of an conflict writeConflictEnd(); } if (chunk.getConflictState() == ConflictState.FIRST_CONFLICTING_RANGE) { // found the start of an conflict writeConflictStart(chunk); } else if (chunk.getConflictState() == ConflictState.NEXT_CONFLICTING_RANGE) { // found another conflicting chunk writeConflictChange(chunk); } }
void formatMerge() throws IOException { boolean missingNewlineAtEnd = false; for (MergeChunk chunk : res) { RawText seq = res.getSequences().get(chunk.getSequenceIndex()); writeConflictMetadata(chunk); // the lines with conflict-metadata are written. Now write the chunk for (int i = chunk.getBegin(); i < chunk.getEnd(); i++) writeLine(seq, i); missingNewlineAtEnd = seq.isMissingNewlineAtEnd(); } // one possible leftover: if the merge result ended with a conflict we // have to close the last conflict here if (lastConflictingName != null) writeConflictEnd(); if (!missingNewlineAtEnd) out.beginln(); }
/** * Formats the results of a merge of {@link org.eclipse.jgit.diff.RawText} * objects in a Git conformant way. This method also assumes that the * {@link org.eclipse.jgit.diff.RawText} objects being merged are line * oriented files which use LF as delimiter. This method will also use LF to * separate chunks and conflict metadata, therefore it fits only to texts * that are LF-separated lines. * * @param out * the output stream where to write the textual presentation * @param res * the merge result which should be presented * @param seqName * When a conflict is reported each conflicting range will get a * name. This name is following the "<<<<<<< * " or ">>>>>>> " conflict markers. The * names for the sequences are given in this list * @param charset * the character set used when writing conflict metadata * @throws java.io.IOException * @since 5.2 */ public void formatMerge(OutputStream out, MergeResult<RawText> res, List<String> seqName, Charset charset) throws IOException { new MergeFormatterPass(out, res, seqName, charset).formatMerge(); }
private void writeConflictEnd() throws IOException { writeln(">>>>>>> " + lastConflictingName); //$NON-NLS-1$ lastConflictingName = null; }
private void writeConflictEnd() throws IOException { writeln(">>>>>>> " + lastConflictingName); //$NON-NLS-1$ lastConflictingName = null; }
private void writeConflictChange(MergeChunk chunk) throws IOException { /* * In case of a non-three-way merge I'll add the name of the conflicting * chunk behind the equal signs. I also append the name of the last * conflicting chunk after the ending greater-than signs. If somebody * knows a better notation to present non-three-way merges - feel free * to correct here. */ lastConflictingName = seqName.get(chunk.getSequenceIndex()); writeln(threeWayMerge ? "=======" : "======= " //$NON-NLS-1$ //$NON-NLS-2$ + lastConflictingName); }
private void writeConflictChange(MergeChunk chunk) throws IOException { /* * In case of a non-three-way merge I'll add the name of the conflicting * chunk behind the equal signs. I also append the name of the last * conflicting chunk after the ending greater-than signs. If somebody * knows a better notation to present non-three-way merges - feel free * to correct here. */ lastConflictingName = seqName.get(chunk.getSequenceIndex()); writeln(threeWayMerge ? "=======" : "======= " //$NON-NLS-1$ //$NON-NLS-2$ + lastConflictingName); }
private void writeConflictStart(MergeChunk chunk) throws IOException { lastConflictingName = seqName.get(chunk.getSequenceIndex()); writeln("<<<<<<< " + lastConflictingName); //$NON-NLS-1$ }
private void writeConflictStart(MergeChunk chunk) throws IOException { lastConflictingName = seqName.get(chunk.getSequenceIndex()); writeln("<<<<<<< " + lastConflictingName); //$NON-NLS-1$ }