mercurial/localrepo.py
changeset 12066 d01e28657429
parent 12035 ff1044230bca
child 12070 fddacca3202e
equal deleted inserted replaced
12065:a8b1cb0b0ddb 12066:d01e28657429
   335             self._updatebranchcache(partial, ctxgen)
   335             self._updatebranchcache(partial, ctxgen)
   336             self._writebranchcache(partial, self.changelog.tip(), tiprev)
   336             self._writebranchcache(partial, self.changelog.tip(), tiprev)
   337 
   337 
   338         return partial
   338         return partial
   339 
   339 
   340     def branchmap(self):
   340     def updatebranchcache(self):
   341         '''returns a dictionary {branch: [branchheads]}'''
       
   342         tip = self.changelog.tip()
   341         tip = self.changelog.tip()
   343         if self._branchcache is not None and self._branchcachetip == tip:
   342         if self._branchcache is not None and self._branchcachetip == tip:
   344             return self._branchcache
   343             return self._branchcache
   345 
   344 
   346         oldtip = self._branchcachetip
   345         oldtip = self._branchcachetip
   353 
   352 
   354         self._branchtags(partial, lrev)
   353         self._branchtags(partial, lrev)
   355         # this private cache holds all heads (not just tips)
   354         # this private cache holds all heads (not just tips)
   356         self._branchcache = partial
   355         self._branchcache = partial
   357 
   356 
       
   357     def branchmap(self):
       
   358         '''returns a dictionary {branch: [branchheads]}'''
       
   359         self.updatebranchcache()
   358         return self._branchcache
   360         return self._branchcache
   359 
   361 
   360     def branchtags(self):
   362     def branchtags(self):
   361         '''return a dict where branch names map to the tipmost head of
   363         '''return a dict where branch names map to the tipmost head of
   362         the branch, open heads come before closed'''
   364         the branch, open heads come before closed'''
   974                       parent2=xp2, pending=p)
   976                       parent2=xp2, pending=p)
   975             self.changelog.finalize(trp)
   977             self.changelog.finalize(trp)
   976             tr.close()
   978             tr.close()
   977 
   979 
   978             if self._branchcache:
   980             if self._branchcache:
   979                 self.branchtags()
   981                 self.updatebranchcache()
   980             return n
   982             return n
   981         finally:
   983         finally:
   982             if tr:
   984             if tr:
   983                 tr.release()
   985                 tr.release()
   984             lock.release()
   986             lock.release()
  1698                 lock.release()
  1700                 lock.release()
  1699 
  1701 
  1700         if changesets > 0:
  1702         if changesets > 0:
  1701             # forcefully update the on-disk branch cache
  1703             # forcefully update the on-disk branch cache
  1702             self.ui.debug("updating the branch cache\n")
  1704             self.ui.debug("updating the branch cache\n")
  1703             self.branchtags()
  1705             self.updatebranchcache()
  1704             self.hook("changegroup", node=hex(cl.node(clstart)),
  1706             self.hook("changegroup", node=hex(cl.node(clstart)),
  1705                       source=srctype, url=url)
  1707                       source=srctype, url=url)
  1706 
  1708 
  1707             for i in xrange(clstart, clend):
  1709             for i in xrange(clstart, clend):
  1708                 self.hook("incoming", node=hex(cl.node(i)),
  1710                 self.hook("incoming", node=hex(cl.node(i)),