--- a/mercurial/merge.py Fri Feb 05 10:15:28 2016 -0800
+++ b/mercurial/merge.py Fri Feb 05 10:22:14 2016 -0800
@@ -405,6 +405,7 @@
fca.path(), hex(fca.filenode()),
fco.path(), hex(fco.filenode()),
fcl.flags()]
+ self._stateextras[fd] = { 'ancestorlinknode' : hex(fca.node()) }
self._dirty = True
def __contains__(self, dfile):
@@ -450,10 +451,16 @@
stateentry = self._state[dfile]
state, hash, lfile, afile, anode, ofile, onode, flags = stateentry
octx = self._repo[self._other]
+ extras = self.extras(dfile)
+ anccommitnode = extras.get('ancestorlinknode')
+ if anccommitnode:
+ actx = self._repo[anccommitnode]
+ else:
+ actx = None
fcd = self._filectxorabsent(hash, wctx, dfile)
fco = self._filectxorabsent(onode, octx, ofile)
# TODO: move this to filectxorabsent
- fca = self._repo.filectx(afile, fileid=anode)
+ fca = self._repo.filectx(afile, fileid=anode, changeid=actx)
# "premerge" x flags
flo = fco.flags()
fla = fca.flags()