Chromium Code Reviews| Index: patch.py |
| diff --git a/patch.py b/patch.py |
| index 90886e9a0fc23ae142e1f524ecee7f18f83d39fe..92926507ec78cc393f0a3dfce65494fd6e390a6a 100644 |
| --- a/patch.py |
| +++ b/patch.py |
| @@ -135,6 +135,11 @@ class Hunk(object): |
| self.variation = self.lines_dst - self.lines_src |
| self.text = [] |
| + def __repr__(self): |
| + return '%s<%d, %d, %d, %d>' % ( |
|
Peter Mayo
2012/08/29 16:49:40
Question: are there any punctuation/separators tha
M-A Ruel
2012/08/29 17:15:29
Used (%d, %d) to (%d, %d) instead, but that's real
|
| + self.__class__.__name__, |
| + self.start_src, self.lines_src, self.start_dst, self.lines_dst) |
| + |
| class FilePatchDiff(FilePatchBase): |
| """Patch for a single file.""" |
| @@ -235,18 +240,19 @@ class FilePatchDiff(FilePatchBase): |
| # "-1,N +0,0" where N is the number of lines deleted. That's from diff |
| # and svn diff. git diff doesn't exhibit this behavior. |
| # svn diff for a single line file rewrite "@@ -1 +1 @@". Fun. |
| + # "@@ -1 +1,N @@" is also valid where N is the length of the new file. |
| if not match: |
| self._fail('Hunk header is unparsable') |
| if ',' in match.group(1): |
| start_src, lines_src = map(int, match.group(1).split(',', 1)) |
| else: |
| start_src = int(match.group(1)) |
| - lines_src = 0 |
| + lines_src = 1 |
| if ',' in match.group(2): |
| start_dst, lines_dst = map(int, match.group(2).split(',', 1)) |
| else: |
| start_dst = int(match.group(2)) |
| - lines_dst = 0 |
| + lines_dst = 1 |
| new_hunk = Hunk(start_src, lines_src, start_dst, lines_dst) |
| if hunks: |
| if new_hunk.start_src <= hunks[-1].start_src: |
| @@ -273,8 +279,8 @@ class FilePatchDiff(FilePatchBase): |
| len([1 for i in hunk.text if i.startswith('-')])) |
| if variation != hunk.variation: |
| self._fail( |
| - 'Hunk header is incorrect: %d vs %d' % ( |
| - variation, hunk.variation)) |
| + 'Hunk header is incorrect: %d vs %d; %r' % ( |
| + variation, hunk.variation, hunk)) |
| if not hunk.start_src: |
| self._fail( |
| 'Hunk header start line is incorrect: %d' % hunk.start_src) |