# HG changeset patch # User Boris Feld # Date 1537435108 -7200 # Node ID a3095bc47217b46544f8e7d6521b59e123a4b297 # Parent debc4ee597e7b7465995c43cb2261c26ca496dba changelog: keep track of duplicated node in the transaction adding them The transaction is already tracking the new nodes. We now tracks the "duplicates" in the same location. diff -r debc4ee597e7 -r a3095bc47217 mercurial/changelog.py --- a/mercurial/changelog.py Wed Sep 19 21:02:47 2018 +0200 +++ b/mercurial/changelog.py Thu Sep 20 11:18:28 2018 +0200 @@ -545,3 +545,10 @@ just to access this is costly.""" extra = self.read(rev)[5] return encoding.tolocal(extra.get("branch")), 'close' in extra + + def _nodeduplicatecallback(self, transaction, node): + # keep track of revisions that got "re-added", eg: unbunde of know rev. + # + # We track them in a list to preserve their order from the source bundle + duplicates = transaction.changes.setdefault('revduplicates', []) + duplicates.append(self.rev(node))