]> Cypherpunks repositories - gostls13.git/commitdiff
patch: handle text diffs from git
authorRuss Cox <rsc@golang.org>
Wed, 27 Jan 2010 01:49:33 +0000 (17:49 -0800)
committerRuss Cox <rsc@golang.org>
Wed, 27 Jan 2010 01:49:33 +0000 (17:49 -0800)
R=r
CC=golang-dev
https://golang.org/cl/194094

src/pkg/patch/patch.go
src/pkg/patch/patch_test.go

index 04ecd9d242851adfe51034f5fce5455b2cbab116..9d9aa1b485eea723e7eaf6c3b803953e85610fed 100644 (file)
@@ -207,7 +207,7 @@ func Parse(text []byte) (*Set, os.Error) {
                                p.Diff = diff
                                break
                        }
-                       if hasPrefix(l, "index ") || hasPrefix(l, "GIT binary patch") {
+                       if hasPrefix(l, "GIT binary patch") || (hasPrefix(l, "index ") && !hasPrefix(raw, "--- ")) {
                                diff, err := ParseGitBinary(oldraw)
                                if err != nil {
                                        return nil, err
@@ -215,6 +215,9 @@ func Parse(text []byte) (*Set, os.Error) {
                                p.Diff = diff
                                break
                        }
+                       if hasPrefix(l, "index ") {
+                               continue
+                       }
                        return nil, SyntaxError("unexpected patch header line: " + string(l))
                }
                if p.Diff == nil {
index 5b3d48315f34a3d3c3022e7cd035571f61d41220..49a5c76d459673e00164c3dc5302f66b3696ab41 100644 (file)
@@ -50,6 +50,17 @@ var tests = []Test{
                        "-hello, world\n" +
                        "+goodbye, world\n",
        },
+       Test{
+               "hello, world\n",
+               "goodbye, world\n",
+               "Index: a\n" +
+                       "index cb34d9b1743b7c410fa750be8a58eb355987110b..0a01764bc1b2fd29da317f72208f462ad342400f\n" +
+                       "--- a/a\n" +
+                       "+++ b/b\n" +
+                       "@@ -1 +1 @@\n" +
+                       "-hello, world\n" +
+                       "+goodbye, world\n",
+       },
        Test{
                "hello, world\n",
                "goodbye, world\n",