Signed-off-by: Shawn O. Pearce <spearce@xxxxxxxxxxx> --- "Shawn O. Pearce" <spearce@xxxxxxxxxxx> wrote: > This test currently fails because it shows the difference between > the way CGit and JGit number a zero context line patch. > > Either we hack JGit to match CGit here And here is that hack. It just feels wrong to me that I need to subtract 1 from the Edit region's line numbers, *only* when context is 0, in order to get the same output as CGit. .../src/org/spearce/jgit/diff/DiffFormatter.java | 23 ++++++++++++++++--- 1 files changed, 19 insertions(+), 4 deletions(-) diff --git a/org.spearce.jgit/src/org/spearce/jgit/diff/DiffFormatter.java b/org.spearce.jgit/src/org/spearce/jgit/diff/DiffFormatter.java index 97db9a2..9930904 100644 --- a/org.spearce.jgit/src/org/spearce/jgit/diff/DiffFormatter.java +++ b/org.spearce.jgit/src/org/spearce/jgit/diff/DiffFormatter.java @@ -120,7 +120,7 @@ private void formatEdits(final OutputStream out, final RawText a, final int aEnd = Math.min(a.size(), endEdit.getEndA() + context); final int bEnd = Math.min(b.size(), endEdit.getEndB() + context); - writeHunkHeader(out, aCur, aEnd, bCur, bEnd, curIdx == 0); + writeHunkHeader(out, aCur, aEnd, bCur, bEnd, curEdit, curIdx == 0); while (aCur < aEnd || bCur < bEnd) { if (aCur < curEdit.getBeginA() || endIdx + 1 < curIdx) { @@ -141,9 +141,24 @@ private void formatEdits(final OutputStream out, final RawText a, } } - private void writeHunkHeader(final OutputStream out, final int aCur, - final int aEnd, final int bCur, final int bEnd, - final boolean firstHunk) throws IOException { + private void writeHunkHeader(final OutputStream out, int aCur, int aEnd, + int bCur, int bEnd, final Edit curEdit, final boolean firstHunk) + throws IOException { + if (context == 0) { + switch (curEdit.getType()) { + case INSERT: + aCur--; + aEnd--; + break; + case DELETE: + bCur--; + bEnd--; + break; + default: + break; + } + } + out.write('@'); out.write('@'); if (firstHunk) { -- 1.6.3.rc4.190.g4648 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html