diff -r 362f6f651b2e -r fa54f7ade491 mercurial/localrepo.py --- a/mercurial/localrepo.py Tue Nov 08 08:03:43 2016 -0800 +++ b/mercurial/localrepo.py Tue Nov 08 08:03:43 2016 -0800 @@ -1700,9 +1700,13 @@ trp = weakref.proxy(tr) if ctx.files(): - m1 = p1.manifest() - m2 = p2.manifest() - m = m1.copy() + m1ctx = p1.manifestctx() + m2ctx = p2.manifestctx() + mctx = m1ctx.copy() + + m = mctx.read() + m1 = m1ctx.read() + m2 = m2ctx.read() # check in files added = [] @@ -1736,9 +1740,9 @@ drop = [f for f in removed if f in m] for f in drop: del m[f] - mn = self.manifestlog.add(m, trp, linkrev, - p1.manifestnode(), p2.manifestnode(), - added, drop) + mn = mctx.write(trp, linkrev, + p1.manifestnode(), p2.manifestnode(), + added, drop) files = changed + removed else: mn = p1.manifestnode()