# HG changeset patch # User Benoit Boissinot # Date 1282511837 -7200 # Node ID 44c22dc193a41b9e70f343a698fd2b9eddd13a71 # Parent 6b04f1e1aa8a81a87ac75e35377e3266f75eaf0c revlog.addrevision(): move computation of nodeid in addrevision() The check "if node in nodemap" is already done earlier in addgroup(). diff -r 6b04f1e1aa8a -r 44c22dc193a4 mercurial/revlog.py --- a/mercurial/revlog.py Sun Aug 22 19:41:04 2010 +0200 +++ b/mercurial/revlog.py Sun Aug 22 23:17:17 2010 +0200 @@ -1137,25 +1137,25 @@ p1, p2 - the parent nodeids of the revision cachedelta - an optional precomputed delta """ + node = hash(text, p1, p2) + if (node in self.nodemap and + (not self.flags(self.rev(node)) & REVIDX_PUNCHED_FLAG)): + return node + dfh = None if not self._inline: dfh = self.opener(self.datafile, "a") ifh = self.opener(self.indexfile, "a+") try: - return self._addrevision(text, transaction, link, p1, p2, + return self._addrevision(node, text, transaction, link, p1, p2, cachedelta, ifh, dfh) finally: if dfh: dfh.close() ifh.close() - def _addrevision(self, text, transaction, link, p1, p2, + def _addrevision(self, node, text, transaction, link, p1, p2, cachedelta, ifh, dfh): - node = hash(text, p1, p2) - if (node in self.nodemap and - (not self.flags(self.rev(node)) & REVIDX_PUNCHED_FLAG)): - return node - curr = len(self) prev = curr - 1 base = curr @@ -1360,8 +1360,8 @@ else: text = mdiff.patches(text, [delta]) del delta - chk = self._addrevision(text, transaction, link, p1, p2, None, - ifh, dfh) + chk = self._addrevision(node, text, transaction, link, + p1, p2, None, ifh, dfh) if not dfh and not self._inline: # addrevision switched from inline to conventional # reopen the index