# HG changeset patch # User Siddharth Agarwal # Date 1495672708 25200 # Node ID f8fb8a441b4aa56d490f943c7a524fd1d6ad6aef # Parent 579df5aaa425887975ad255e5778e0f282766e1e annotate: move pair function to top level We'll want to make this more complicated and have unit tests for it in upcoming patches. diff -r 579df5aaa425 -r f8fb8a441b4a mercurial/context.py --- a/mercurial/context.py Thu May 25 23:20:00 2017 +0900 +++ b/mercurial/context.py Wed May 24 17:38:28 2017 -0700 @@ -969,15 +969,6 @@ def decorate(text, rev): return ([(rev, False)] * lines(text), text) - def pair(parent, child): - blocks = mdiff.allblocks(parent[1], child[1], opts=diffopts) - for (a1, a2, b1, b2), t in blocks: - # Changed blocks ('!') or blocks made only of blank lines ('~') - # belong to the child. - if t == '=': - child[0][b1:b2] = parent[0][a1:a2] - return child - getlog = util.lrucachefunc(lambda x: self._repo.file(x)) def parents(f): @@ -1054,7 +1045,7 @@ visit.pop() curr = decorate(f.data(), f) for p in pl: - curr = pair(hist[p], curr) + curr = _annotatepair(hist[p], curr, diffopts) if needed[p] == 1: del hist[p] del needed[p] @@ -1082,6 +1073,15 @@ c = visit.pop(max(visit)) yield c +def _annotatepair(parent, child, diffopts): + blocks = mdiff.allblocks(parent[1], child[1], opts=diffopts) + for (a1, a2, b1, b2), t in blocks: + # Changed blocks ('!') or blocks made only of blank lines ('~') + # belong to the child. + if t == '=': + child[0][b1:b2] = parent[0][a1:a2] + return child + class filectx(basefilectx): """A filecontext object makes access to data related to a particular filerevision convenient."""