comparison mercurial/branchmap.py @ 24163:bb11081562d7

merge with stable
author Matt Mackall <mpm@selenic.com>
date Mon, 02 Mar 2015 01:20:14 -0600
parents 32a64923d2b7 5b4ed033390b
children 59cc09240afb
comparison
equal deleted inserted replaced
24162:758dd85b6ad6 24163:bb11081562d7
328 branch and the last bit indicate that it is a branch close commit. 328 branch and the last bit indicate that it is a branch close commit.
329 The usage pattern for rbc-revs is thus somewhat similar to 00changelog.i 329 The usage pattern for rbc-revs is thus somewhat similar to 00changelog.i
330 and will grow with it but be 1/8th of its size. 330 and will grow with it but be 1/8th of its size.
331 """ 331 """
332 332
333 def __init__(self, repo): 333 def __init__(self, repo, readonly=True):
334 assert repo.filtername is None 334 assert repo.filtername is None
335 self._names = [] # branch names in local encoding with static index 335 self._names = [] # branch names in local encoding with static index
336 self._rbcrevs = array('c') # structs of type _rbcrecfmt 336 self._rbcrevs = array('c') # structs of type _rbcrecfmt
337 self._rbcsnameslen = 0 337 self._rbcsnameslen = 0
338 try: 338 try:
340 self._rbcsnameslen = len(bndata) # for verification before writing 340 self._rbcsnameslen = len(bndata) # for verification before writing
341 self._names = [encoding.tolocal(bn) for bn in bndata.split('\0')] 341 self._names = [encoding.tolocal(bn) for bn in bndata.split('\0')]
342 except (IOError, OSError), inst: 342 except (IOError, OSError), inst:
343 repo.ui.debug("couldn't read revision branch cache names: %s\n" % 343 repo.ui.debug("couldn't read revision branch cache names: %s\n" %
344 inst) 344 inst)
345 if readonly:
346 # don't try to use cache - fall back to the slow path
347 self.branchinfo = self._branchinfo
348
345 if self._names: 349 if self._names:
346 try: 350 try:
347 data = repo.vfs.read(_rbcrevs) 351 data = repo.vfs.read(_rbcrevs)
348 self._rbcrevs.fromstring(data) 352 self._rbcrevs.fromstring(data)
349 except (IOError, OSError), inst: 353 except (IOError, OSError), inst: