diff --git a/gitdiff/binary.go b/gitdiff/binary.go index c65a9a6..169d14e 100644 --- a/gitdiff/binary.go +++ b/gitdiff/binary.go @@ -56,7 +56,11 @@ func (p *parser) ParseBinaryMarker() (isBinary bool, hasData bool, err error) { case "Binary files differ\n": case "Files differ\n": default: - return false, false, nil + if strings.HasPrefix(p.Line(0), "Binary files") && strings.HasSuffix(p.Line(0), "differ\n") { + // for some git version, it comes as "Binary files {filepath} differ\n" + } else { + return false, false, nil + } } if err = p.Next(); err != nil && err != io.EOF { diff --git a/gitdiff/binary_test.go b/gitdiff/binary_test.go index a31a0e0..d1e2c50 100644 --- a/gitdiff/binary_test.go +++ b/gitdiff/binary_test.go @@ -25,6 +25,11 @@ func TestParseBinaryMarker(t *testing.T) { IsBinary: true, HasData: false, }, + "binaryFileNoPatch2": { + Input: "Binary files path/to/the/file differ\n", + IsBinary: true, + HasData: false, + }, "textFile": { Input: "@@ -10,14 +22,31 @@\n", IsBinary: false,