--- a/mercurial/exchangev2.py Wed Oct 07 14:26:47 2020 +0530
+++ b/mercurial/exchangev2.py Sun Oct 18 22:18:02 2020 +0200
@@ -343,16 +343,21 @@
)
manifestnodes = {}
+ added = []
def linkrev(node):
repo.ui.debug(b'add changeset %s\n' % short(node))
# Linkrev for changelog is always self.
return len(cl)
+ def ondupchangeset(cl, node):
+ added.append(node)
+
def onchangeset(cl, node):
progress.increment()
revision = cl.changelogrevision(node)
+ added.append(node)
# We need to preserve the mapping of changelog revision to node
# so we can set the linkrev accordingly when manifests are added.
@@ -403,8 +408,12 @@
0,
)
- added = cl.addgroup(
- iterrevisions(), linkrev, weakref.proxy(tr), addrevisioncb=onchangeset
+ cl.addgroup(
+ iterrevisions(),
+ linkrev,
+ weakref.proxy(tr),
+ addrevisioncb=onchangeset,
+ duplicaterevisioncb=ondupchangeset,
)
progress.complete()
@@ -516,12 +525,15 @@
# Chomp off header object.
next(objs)
- added.extend(
- rootmanifest.addgroup(
- iterrevisions(objs, progress),
- linkrevs.__getitem__,
- weakref.proxy(tr),
- )
+ def onchangeset(cl, node):
+ added.append(node)
+
+ rootmanifest.addgroup(
+ iterrevisions(objs, progress),
+ linkrevs.__getitem__,
+ weakref.proxy(tr),
+ addrevisioncb=onchangeset,
+ duplicaterevisioncb=onchangeset,
)
progress.complete()