diff --git a/mercurial/context.py b/mercurial/context.py --- a/mercurial/context.py +++ b/mercurial/context.py @@ -1121,7 +1121,8 @@ class basefilectx(object): hist[f] = curr del pcache[f] - return pycompat.ziplist(hist[base][0], hist[base][1].splitlines(True)) + lineattrs, text = hist[base] + return pycompat.ziplist(lineattrs, mdiff.splitnewlines(text)) def ancestors(self, followfirst=False): visit = {} diff --git a/tests/test-annotate.t b/tests/test-annotate.t --- a/tests/test-annotate.t +++ b/tests/test-annotate.t @@ -895,6 +895,38 @@ Annotate with --ignore-blank-lines (simi $ cd .. +Annotate with orphaned CR (issue5798) +------------------------------------- + + $ hg init repo-cr + $ cd repo-cr + + $ substcr() { + > sed 's/\r/[CR]/g' + > } + + >>> with open('a', 'wb') as f: + ... f.write(b'0a\r0b\r\n0c\r0d\r\n0e\n0f\n0g') + $ hg ci -qAm0 + >>> with open('a', 'wb') as f: + ... f.write(b'0a\r0b\r\n1c\r1d\r\n0e\n1f\n0g') + $ hg ci -m1 + + $ hg annotate -r0 a | substcr + 0: 0a[CR]0b[CR] + 0: 0c[CR]0d[CR] + 0: 0e + 0: 0f + 0: 0g + $ hg annotate -r1 a | substcr + 0: 0a[CR]0b[CR] + 1: 1c[CR]1d[CR] + 0: 0e + 1: 1f + 0: 0g + + $ cd .. + Annotate with linkrev pointing to another branch ------------------------------------------------