Mercurial > public > mercurial-scm > hg-stable
diff mercurial/patch.py @ 12825:61f48581d8ef stable
Test applying context diffs
author | Patrick Mezard <pmezard@gmail.com> |
---|---|
date | Sun, 24 Oct 2010 12:56:38 +0200 |
parents | 80a3d1121c10 |
children | df1b65f8b4d4 66d7a1250c9b |
line wrap: on
line diff
--- a/mercurial/patch.py Sun Oct 24 12:55:29 2010 +0200 +++ b/mercurial/patch.py Sun Oct 24 12:56:38 2010 +0200 @@ -686,6 +686,7 @@ for x in xrange(self.lena): l = lr.readline() if l.startswith('---'): + # lines addition, old block is empty lr.push(l) break s = l[2:] @@ -719,11 +720,15 @@ for x in xrange(self.lenb): l = lr.readline() if l.startswith('\ '): + # XXX: the only way to hit this is with an invalid line range. + # The no-eol marker is not counted in the line range, but I + # guess there are diff(1) out there which behave differently. s = self.b[-1][:-1] self.b[-1] = s self.hunk[hunki - 1] = s continue if not l: + # line deletions, new block is empty and we hit EOF lr.push(l) break s = l[2:] @@ -732,7 +737,7 @@ elif l.startswith(' '): u = ' ' + s elif len(self.b) == 0: - # this can happen when the hunk does not add any lines + # line deletions, new block is empty lr.push(l) break else: