Files incorrectly flagged as merge conflicts during inline diff
For some files, when I try to start an inline diff it is flagged as containing a merge conflict and the diff does not open.

I tracked down the source of this and it was introduced in https://github.com/timbrel/GitSavvy/commit/8df9b46a4d34014949286aaecad3a6398fa1ee7b, specifically in `safely_parse_metadata`

The issue seems to be that the regex is picking up extra results based on the content of the diff, in addition to the metadata. As an example, for the input:

```
@@ -7,0 +8 @@ RCall = "6f49c342-dc21-5d91-9882-a32aef131414"
```

the output is `[(7, 0), (8, 1), (5, 1), (9882, 1)]`

Another example is 

```
@@ -295 +313 @@ docs-main:iai-2.0.0:
```

giving `[(295, 1), (313, 1), (2, 1)]`

It seems like the previous version was limiting the search to inside the `@@ ... @@` whereas now it is not, and it is flagging the diff a merge conflict because there are more than two elements in the returned metadata.
diff --git a/core/parse_diff.py b/core/parse_diff.py
index d3331be6..e635cb6f 100644
--- a/core/parse_diff.py
+++ b/core/parse_diff.py
@@ -219,7 +219,9 @@ class HunkHeader(TextRange):
         """
         return [
             (int(start), int(length or "1"))
-            for start, length in SAFE_PARSE_HUNK_HEADER.findall(self.text)
+            for start, length in SAFE_PARSE_HUNK_HEADER.findall(
+                self.text.lstrip("@").split("@", 1)[0]
+            )
         ]
 
 
diff --git a/tests/test_hunk_counting.py b/tests/test_hunk_counting.py
index 519ea8b5..2a7b9dab 100644
--- a/tests/test_hunk_counting.py
+++ b/tests/test_hunk_counting.py
@@ -6,6 +6,7 @@ from GitSavvy.tests.parameterized import parameterized as p
 from GitSavvy.core.fns import accumulate, unzip
 
 import GitSavvy.core.commands.diff as module
+from GitSavvy.core.parse_diff import HunkHeader
 
 
 f1 = """\\
@@ -275,3 +276,15 @@ class TestDiffPatchGeneration(DeferrableTestCase):
                 raise _ExpectedFailure(sys.exc_info())
 
         self.assertEqual(expected, actual)
+
+
+class HunkHeaderNumberExtraction(DeferrableTestCase):
+    @p.expand([
+        ("@@ -685,8 +686,14 @@ ...", [(685, 8), (686, 14)]),
+        ("@@@ -685,8 -644 +686,14 @@@ ...", [(685, 8), (644, 1), (686, 14)]),
+        ('@@ -7,0 +8 @@ RCall = "6f49c342-dc21-5d91-9882-a32aef131414"', [(7, 0), (8, 1)]),
+        ("@@ -295 +313 @@ docs-main:iai-2.0.0:", [(295, 1), (313, 1)]),
+    ])
+    def test_safely_parse_metadata(self, input, expected):
+        actual = HunkHeader(input).safely_parse_metadata()
+        self.assertEqual(expected, actual)
['core/parse_diff.py', 'tests/test_hunk_counting.py']