Changeset - fbb992c719aa
[Not reviewed]
default
0 3 0
Mads Kiilerich - 11 years ago 2014-12-15 13:47:36
madski@unity3d.com
diff: don't split lines on bare CR as python splitlines do

The line count from the @@ lines and the actual count would get out of sync and
an incomplete diff would be shown.

This is slower than native splitlines ... but that is what it takes to handle
it correctly. (Except that we perhaps could use .split('\n') and patch the
result ...)
3 files changed with 3 insertions and 3 deletions:
0 comments (0 inline, 0 general)
kallithea/lib/diffs.py
Show inline comments
 
@@ -363,7 +363,7 @@ class DiffProcessor(object):
 
        rest = diff_chunk[match.end():]
 
        if rest and not rest.startswith('@') and not rest.startswith('literal '):
 
            raise Exception('cannot parse diff header: %r followed by %r' % (diff_chunk[:match.end()], rest[:1000]))
 
        difflines = imap(self._escaper, rest.splitlines(True))
 
        difflines = imap(self._escaper, re.findall(r'.*\n|.+$', rest)) # don't split on \r as str.splitlines do
 
        return groups, difflines
 

	
 
    def _clean_line(self, line, command):
kallithea/tests/fixtures/hg_diff_rename_space_cr.diff
Show inline comments
 
@@ -3,7 +3,7 @@ rename from oh no
 
rename to oh yes
 
--- a/oh no	
 
+++ b/oh yes	
 
@@ -1,5 +1,6 @@
 
@@ -1,4 +1,4 @@
 
 1
 
-2+ 2
 
-3 
kallithea/tests/models/test_diff_parsers.py
Show inline comments
 
@@ -249,7 +249,7 @@ DIFF_FIXTURES = {
 
    ],
 
    'hg_diff_rename_space_cr.diff': [
 
        ('oh yes', 'R',
 
         {'added': 4,
 
         {'added': 3,
 
          'deleted': 2,
 
          'binary': False,
 
          'ops': {RENAMED_FILENODE: 'file renamed from oh no to oh yes'}}),
0 comments (0 inline, 0 general)