"Shawn O. Pearce" <spearce@xxxxxxxxxxx> writes: > I can't decide if this is a bug in JGit, or a bug in CGit, or just > an area where the patch format is very unclear. > > The following 2 patches are identical, but use different context: > > git diff --unified=1: > > diff --git a/X b/X > index a3648a1..2d44096 100644 > --- a/X > +++ b/X > @@ -2,2 +2,3 @@ > b > +c > d > @@ -16,4 +17,2 @@ > q > -r > -s > t > > git diff --unified=0: > > diff --git a/X b/X > index a3648a1..2d44096 100644 > --- a/X > +++ b/X > @@ -2,0 +3 @@ > +c > @@ -17,2 +17,0 @@ > -r > -s > > Now lets look at JGit's output of that last patch, unified=0: > > diff --git a/X b/X > index a3648a1..2d44096 100644 > --- a/X > +++ b/X > @@ -3,0 +3,1 @@ > +c > @@ -17,2 +18,0 @@ > -r > -s I do not know what the current status of the POSIX draft for spliting "context diff" format into "copied context" and "unified context", but see http://www.opengroup.org/austin/aardvark/latest/xcubug2.txt for the definition that was on track the last time I checked. First the range of lines in each file shall be written in the following format: "@@^-%s^+%s^@@", <file1 range>, <file2 range> Each <range> field shall be of the form: "%1d", <beginning line number> if the range contains exactly one line, and: "%1d,%1d", <beginning line number>, <number of lines> otherwise. If a range is empty, its beginning line number shall be the number of the line just before the range, or 0 if the empty range starts the file. So, JGit is wrong. -- 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