4203 repo.filtered(name).branchmap() |
4203 repo.filtered(name).branchmap() |
4204 if not filternames or b'unfiltered' in filternames: |
4204 if not filternames or b'unfiltered' in filternames: |
4205 # add unfiltered |
4205 # add unfiltered |
4206 allfilters.append(None) |
4206 allfilters.append(None) |
4207 |
4207 |
4208 if util.safehasattr(branchmap.branchcache, 'fromfile'): |
4208 old_branch_cache_from_file = None |
|
4209 branchcacheread = None |
|
4210 if util.safehasattr(branchmap, 'branch_cache_from_file'): |
|
4211 old_branch_cache_from_file = branchmap.branch_cache_from_file |
|
4212 branchmap.branch_cache_from_file = lambda *args: None |
|
4213 elif util.safehasattr(branchmap.branchcache, 'fromfile'): |
4209 branchcacheread = safeattrsetter(branchmap.branchcache, b'fromfile') |
4214 branchcacheread = safeattrsetter(branchmap.branchcache, b'fromfile') |
4210 branchcacheread.set(classmethod(lambda *args: None)) |
4215 branchcacheread.set(classmethod(lambda *args: None)) |
4211 else: |
4216 else: |
4212 # older versions |
4217 # older versions |
4213 branchcacheread = safeattrsetter(branchmap, b'read') |
4218 branchcacheread = safeattrsetter(branchmap, b'read') |
4214 branchcacheread.set(lambda *args: None) |
4219 branchcacheread.set(lambda *args: None) |
4215 branchcachewrite = safeattrsetter(branchmap.branchcache, b'write') |
4220 if util.safehasattr(branchmap, '_LocalBranchCache'): |
4216 branchcachewrite.set(lambda *args: None) |
4221 branchcachewrite = safeattrsetter(branchmap._LocalBranchCache, b'write') |
|
4222 branchcachewrite.set(lambda *args: None) |
|
4223 else: |
|
4224 branchcachewrite = safeattrsetter(branchmap.branchcache, b'write') |
|
4225 branchcachewrite.set(lambda *args: None) |
4217 try: |
4226 try: |
4218 for name in allfilters: |
4227 for name in allfilters: |
4219 printname = name |
4228 printname = name |
4220 if name is None: |
4229 if name is None: |
4221 printname = b'unfiltered' |
4230 printname = b'unfiltered' |
4222 timer(getbranchmap(name), title=printname) |
4231 timer(getbranchmap(name), title=printname) |
4223 finally: |
4232 finally: |
4224 branchcacheread.restore() |
4233 if old_branch_cache_from_file is not None: |
|
4234 branchmap.branch_cache_from_file = old_branch_cache_from_file |
|
4235 if branchcacheread is not None: |
|
4236 branchcacheread.restore() |
4225 branchcachewrite.restore() |
4237 branchcachewrite.restore() |
4226 fm.end() |
4238 fm.end() |
4227 |
4239 |
4228 |
4240 |
4229 @command( |
4241 @command( |
4379 else: |
4391 else: |
4380 repo = repoview.repoview(repo, filter) |
4392 repo = repoview.repoview(repo, filter) |
4381 |
4393 |
4382 repo.branchmap() # make sure we have a relevant, up to date branchmap |
4394 repo.branchmap() # make sure we have a relevant, up to date branchmap |
4383 |
4395 |
4384 try: |
4396 fromfile = getattr(branchmap, 'branch_cache_from_file', None) |
4385 fromfile = branchmap.branchcache.fromfile |
4397 if fromfile is None: |
4386 except AttributeError: |
4398 fromfile = getattr(branchmap.branchcache, 'fromfile', None) |
4387 # older versions |
4399 if fromfile is None: |
4388 fromfile = branchmap.read |
4400 fromfile = branchmap.read |
4389 |
4401 |
4390 currentfilter = filter |
4402 currentfilter = filter |
4391 # try once without timer, the filter may not be cached |
4403 # try once without timer, the filter may not be cached |
4392 while fromfile(repo) is None: |
4404 while fromfile(repo) is None: |