diff -r 78e54b9f3a62 -r d3b995dd4eab mercurial/localrepo.py --- a/mercurial/localrepo.py Sun Jul 12 00:46:43 2009 -0500 +++ b/mercurial/localrepo.py Mon Jul 13 20:19:17 2009 +0200 @@ -473,9 +473,8 @@ latest = newnodes.pop() if latest not in bheads: continue - reachable = set() - for bh in bheads: - reachable |= self.changelog.reachable(latest, bh) + minbhrev = self[min([self[bh].rev() for bh in bheads])].node() + reachable = self.changelog.reachable(latest, minbhrev) bheads = [b for b in bheads if b not in reachable] newbheads.insert(0, latest) bheads.extend(newbheads)