diff --git a/mercurial/context.py b/mercurial/context.py --- a/mercurial/context.py +++ b/mercurial/context.py @@ -1111,6 +1111,8 @@ class annotateline(object): fctx = attr.ib() lineno = attr.ib(default=False) + # Whether this annotation was the result of a skip-annotate. + skip = attr.ib(default=False) def _annotatepair(parents, childfctx, child, skipchild, diffopts): r''' @@ -1160,6 +1162,7 @@ if child[0][bk].fctx == childfctx: ak = min(a1 + (bk - b1), a2 - 1) child[0][bk] = parent[0][ak] + child[0][bk].skip = True else: remaining[idx][1].append((a1, a2, b1, b2)) @@ -1171,6 +1174,7 @@ if child[0][bk].fctx == childfctx: ak = min(a1 + (bk - b1), a2 - 1) child[0][bk] = parent[0][ak] + child[0][bk].skip = True return child class filectx(basefilectx): diff --git a/tests/test-annotate.py b/tests/test-annotate.py --- a/tests/test-annotate.py +++ b/tests/test-annotate.py @@ -80,9 +80,9 @@ diffopts) self.assertEqual(childann[0], [ annotateline('old', 1), - annotateline('old', 2), - annotateline('p2', 2), - annotateline('p2', 2), + annotateline('old', 2, True), + annotateline('p2', 2, True), + annotateline('p2', 2, True), annotateline('p2', 3), ]) @@ -91,9 +91,9 @@ diffopts) self.assertEqual(childann[0], [ annotateline('old', 1), - annotateline('old', 2), - annotateline('p1', 3), - annotateline('p1', 3), + annotateline('old', 2, True), + annotateline('p1', 3, True), + annotateline('p1', 3, True), annotateline('p2', 3), ])