Re: bug in git diff --unified=0 ?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



"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

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]