diff --git a/hgext/sqlitestore.py b/hgext/sqlitestore.py index f7b61ad3c64ae0c7eb81da6cb1559d6006b51c0f_aGdleHQvc3FsaXRlc3RvcmUucHk=..7a93b7b3dc2d3b23af5a44321ac3c72ccaf6e6a1_aGdleHQvc3FsaXRlc3RvcmUucHk= 100644 --- a/hgext/sqlitestore.py +++ b/hgext/sqlitestore.py @@ -743,7 +743,7 @@ ) if duplicaterevisioncb: - duplicaterevisioncb(self, node) + duplicaterevisioncb(self, self.rev(node)) empty = False continue @@ -754,7 +754,7 @@ text = None storedelta = (deltabase, delta) - self._addrawrevision( + rev = self._addrawrevision( node, text, transaction, @@ -766,7 +766,7 @@ ) if addrevisioncb: - addrevisioncb(self, node) + addrevisioncb(self, rev) empty = False return not empty diff --git a/mercurial/changegroup.py b/mercurial/changegroup.py index f7b61ad3c64ae0c7eb81da6cb1559d6006b51c0f_bWVyY3VyaWFsL2NoYW5nZWdyb3VwLnB5..7a93b7b3dc2d3b23af5a44321ac3c72ccaf6e6a1_bWVyY3VyaWFsL2NoYW5nZWdyb3VwLnB5 100644 --- a/mercurial/changegroup.py +++ b/mercurial/changegroup.py @@ -318,7 +318,7 @@ efilesset = set() cgnodes = [] - def ondupchangelog(cl, node): - if cl.rev(node) < clstart: - cgnodes.append(node) + def ondupchangelog(cl, rev): + if rev < clstart: + cgnodes.append(cl.node(rev)) @@ -324,6 +324,5 @@ - def onchangelog(cl, node): - rev = cl.rev(node) + def onchangelog(cl, rev): ctx = cl.changelogrevision(rev) efilesset.update(ctx.files) repo.register_changeset(rev, ctx) diff --git a/mercurial/changelog.py b/mercurial/changelog.py index f7b61ad3c64ae0c7eb81da6cb1559d6006b51c0f_bWVyY3VyaWFsL2NoYW5nZWxvZy5weQ==..7a93b7b3dc2d3b23af5a44321ac3c72ccaf6e6a1_bWVyY3VyaWFsL2NoYW5nZWxvZy5weQ== 100644 --- a/mercurial/changelog.py +++ b/mercurial/changelog.py @@ -610,8 +610,8 @@ just to access this is costly.""" return self.changelogrevision(rev).branchinfo - def _nodeduplicatecallback(self, transaction, node): + def _nodeduplicatecallback(self, transaction, rev): # 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(b'revduplicates', []) @@ -614,5 +614,5 @@ # 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(b'revduplicates', []) - duplicates.append(self.rev(node)) + duplicates.append(rev) diff --git a/mercurial/exchangev2.py b/mercurial/exchangev2.py index f7b61ad3c64ae0c7eb81da6cb1559d6006b51c0f_bWVyY3VyaWFsL2V4Y2hhbmdldjIucHk=..7a93b7b3dc2d3b23af5a44321ac3c72ccaf6e6a1_bWVyY3VyaWFsL2V4Y2hhbmdldjIucHk= 100644 --- a/mercurial/exchangev2.py +++ b/mercurial/exchangev2.py @@ -358,6 +358,6 @@ # Linkrev for changelog is always self. return len(cl) - def ondupchangeset(cl, node): - added.append(node) + def ondupchangeset(cl, rev): + added.append(cl.node(rev)) @@ -363,4 +363,4 @@ - def onchangeset(cl, node): + def onchangeset(cl, rev): progress.increment() @@ -365,4 +365,3 @@ progress.increment() - rev = cl.rev(node) revision = cl.changelogrevision(rev) @@ -368,5 +367,5 @@ revision = cl.changelogrevision(rev) - added.append(node) + added.append(cl.node(rev)) # We need to preserve the mapping of changelog revision to node # so we can set the linkrev accordingly when manifests are added. @@ -537,8 +536,8 @@ # Chomp off header object. next(objs) - def onchangeset(cl, node): - added.append(node) + def onchangeset(cl, rev): + added.append(cl.node(rev)) rootmanifest.addgroup( iterrevisions(objs, progress), diff --git a/mercurial/interfaces/repository.py b/mercurial/interfaces/repository.py index f7b61ad3c64ae0c7eb81da6cb1559d6006b51c0f_bWVyY3VyaWFsL2ludGVyZmFjZXMvcmVwb3NpdG9yeS5weQ==..7a93b7b3dc2d3b23af5a44321ac3c72ccaf6e6a1_bWVyY3VyaWFsL2ludGVyZmFjZXMvcmVwb3NpdG9yeS5weQ== 100644 --- a/mercurial/interfaces/repository.py +++ b/mercurial/interfaces/repository.py @@ -774,8 +774,9 @@ This used to be the default when ``addrevisioncb`` was provided up to Mercurial 5.8. - ``addrevisioncb`` should be called for each node as it is committed. - ``duplicaterevisioncb`` should be called for each pre-existing node. + ``addrevisioncb`` should be called for each new rev as it is committed. + ``duplicaterevisioncb`` should be called for all revs with a + pre-existing node. ``maybemissingparents`` is a bool indicating whether the incoming data may reference parents/ancestor revisions that aren't present. diff --git a/mercurial/revlog.py b/mercurial/revlog.py index f7b61ad3c64ae0c7eb81da6cb1559d6006b51c0f_bWVyY3VyaWFsL3JldmxvZy5weQ==..7a93b7b3dc2d3b23af5a44321ac3c72ccaf6e6a1_bWVyY3VyaWFsL3JldmxvZy5weQ== 100644 --- a/mercurial/revlog.py +++ b/mercurial/revlog.py @@ -2419,5 +2419,6 @@ link = linkmapper(linknode) flags = flags or REVIDX_DEFAULT_FLAGS - if self.index.has_node(node): + rev = self.index.get_rev(node) + if rev is not None: # this can happen if two branches make the same change @@ -2423,3 +2424,3 @@ # this can happen if two branches make the same change - self._nodeduplicatecallback(transaction, node) + self._nodeduplicatecallback(transaction, rev) if duplicaterevisioncb: @@ -2425,5 +2426,5 @@ if duplicaterevisioncb: - duplicaterevisioncb(self, node) + duplicaterevisioncb(self, rev) empty = False continue @@ -2461,7 +2462,7 @@ # We're only using addgroup() in the context of changegroup # generation so the revision data can always be handled as raw # by the flagprocessor. - self._addrevision( + rev = self._addrevision( node, None, transaction, @@ -2477,7 +2478,7 @@ ) if addrevisioncb: - addrevisioncb(self, node) + addrevisioncb(self, rev) empty = False if not dfh and not self._inline: diff --git a/mercurial/testing/storage.py b/mercurial/testing/storage.py index f7b61ad3c64ae0c7eb81da6cb1559d6006b51c0f_bWVyY3VyaWFsL3Rlc3Rpbmcvc3RvcmFnZS5weQ==..7a93b7b3dc2d3b23af5a44321ac3c72ccaf6e6a1_bWVyY3VyaWFsL3Rlc3Rpbmcvc3RvcmFnZS5weQ== 100644 --- a/mercurial/testing/storage.py +++ b/mercurial/testing/storage.py @@ -1129,7 +1129,8 @@ with self._maketransactionfn() as tr: nodes = [] - def onchangeset(cl, node): + def onchangeset(cl, rev): + node = cl.node(rev) nodes.append(node) cb(cl, node) @@ -1133,8 +1134,8 @@ nodes.append(node) cb(cl, node) - def ondupchangeset(cl, node): - nodes.append(node) + def ondupchangeset(cl, rev): + nodes.append(cl.node(rev)) f.addgroup( [], @@ -1163,7 +1164,8 @@ with self._maketransactionfn() as tr: nodes = [] - def onchangeset(cl, node): + def onchangeset(cl, rev): + node = cl.node(rev) nodes.append(node) cb(cl, node) @@ -1167,8 +1169,8 @@ nodes.append(node) cb(cl, node) - def ondupchangeset(cl, node): - nodes.append(node) + def ondupchangeset(cl, rev): + nodes.append(cl.node(rev)) f.addgroup( deltas, @@ -1217,8 +1219,8 @@ with self._maketransactionfn() as tr: newnodes = [] - def onchangeset(cl, node): - newnodes.append(node) + def onchangeset(cl, rev): + newnodes.append(cl.node(rev)) f.addgroup( deltas, diff --git a/tests/simplestorerepo.py b/tests/simplestorerepo.py index f7b61ad3c64ae0c7eb81da6cb1559d6006b51c0f_dGVzdHMvc2ltcGxlc3RvcmVyZXBvLnB5..7a93b7b3dc2d3b23af5a44321ac3c72ccaf6e6a1_dGVzdHMvc2ltcGxlc3RvcmVyZXBvLnB5 100644 --- a/tests/simplestorerepo.py +++ b/tests/simplestorerepo.py @@ -550,7 +550,7 @@ if node in self._indexbynode: if duplicaterevisioncb: - duplicaterevisioncb(self, node) + duplicaterevisioncb(self, self.rev(node)) empty = False continue @@ -560,8 +560,8 @@ else: text = mdiff.patch(self.revision(deltabase), delta) - self._addrawrevision( + rev = self._addrawrevision( node, text, transaction, linkrev, p1, p2, flags ) if addrevisioncb: @@ -564,8 +564,8 @@ node, text, transaction, linkrev, p1, p2, flags ) if addrevisioncb: - addrevisioncb(self, node) + addrevisioncb(self, rev) empty = False return not empty