mercurial/branchmap.py
changeset 51534 767b62cb728e
parent 51533 50850689d3c0
child 51535 03247e37ccf7
equal deleted inserted replaced
51533:50850689d3c0 51534:767b62cb728e
   286         cl = repo.changelog
   286         cl = repo.changelog
   287         # Faster than using ctx.obsolete()
   287         # Faster than using ctx.obsolete()
   288         obsrevs = obsolete.getrevs(repo, b'obsolete')
   288         obsrevs = obsolete.getrevs(repo, b'obsolete')
   289         # collect new branch entries
   289         # collect new branch entries
   290         newbranches = {}
   290         newbranches = {}
       
   291         new_closed = set()
   291         obs_ignored = set()
   292         obs_ignored = set()
   292         getbranchinfo = repo.revbranchcache().branchinfo
   293         getbranchinfo = repo.revbranchcache().branchinfo
   293         max_rev = -1
   294         max_rev = -1
   294         for r in revgen:
   295         for r in revgen:
   295             max_rev = max(max_rev, r)
   296             max_rev = max(max_rev, r)
   299                 obs_ignored.add(r)
   300                 obs_ignored.add(r)
   300                 continue
   301                 continue
   301             branch, closesbranch = getbranchinfo(r)
   302             branch, closesbranch = getbranchinfo(r)
   302             newbranches.setdefault(branch, []).append(r)
   303             newbranches.setdefault(branch, []).append(r)
   303             if closesbranch:
   304             if closesbranch:
   304                 self._closednodes.add(cl.node(r))
   305                 new_closed.add(r)
   305         if max_rev < 0:
   306         if max_rev < 0:
   306             msg = "running branchcache.update without revision to update"
   307             msg = "running branchcache.update without revision to update"
   307             raise error.ProgrammingError(msg)
   308             raise error.ProgrammingError(msg)
   308 
   309 
   309         # Delay fetching the topological heads until they are needed.
   310         # Delay fetching the topological heads until they are needed.
   389                         ancestors = set(cl.ancestors(uncertain, floorrev))
   390                         ancestors = set(cl.ancestors(uncertain, floorrev))
   390                         bheadset -= ancestors
   391                         bheadset -= ancestors
   391             if bheadset:
   392             if bheadset:
   392                 self[branch] = [cl.node(rev) for rev in sorted(bheadset)]
   393                 self[branch] = [cl.node(rev) for rev in sorted(bheadset)]
   393 
   394 
       
   395         self._closednodes.update(cl.node(rev) for rev in new_closed)
       
   396 
   394         duration = util.timer() - starttime
   397         duration = util.timer() - starttime
   395         repo.ui.log(
   398         repo.ui.log(
   396             b'branchcache',
   399             b'branchcache',
   397             b'updated %s in %.4f seconds\n',
   400             b'updated %s in %.4f seconds\n',
   398             _branchcachedesc(repo),
   401             _branchcachedesc(repo),