comparison mercurial/dirstate.py @ 16201:fb7c4c14223f stable

dirstate: filecacheify _branch The opener is relative to .hg, use it in a subclass of filecache to compute the final path.
author Idan Kamara <idankk86@gmail.com>
date Thu, 01 Mar 2012 17:42:49 +0200
parents 9d4a2942a732
children 53e2cd303ecf
comparison
equal deleted inserted replaced
16200:9d4a2942a732 16201:fb7c4c14223f
12 import struct, os, stat, errno 12 import struct, os, stat, errno
13 import cStringIO 13 import cStringIO
14 14
15 _format = ">cllll" 15 _format = ">cllll"
16 propertycache = util.propertycache 16 propertycache = util.propertycache
17 filecache = scmutil.filecache
18
19 class repocache(filecache):
20 """filecache for files in .hg/"""
21 def join(self, obj, fname):
22 return obj._opener.join(fname)
17 23
18 def _finddirs(path): 24 def _finddirs(path):
19 pos = path.rfind('/') 25 pos = path.rfind('/')
20 while pos != -1: 26 while pos != -1:
21 yield path[:pos] 27 yield path[:pos]
76 for name in self._map: 82 for name in self._map:
77 f[util.normcase(name)] = name 83 f[util.normcase(name)] = name
78 f['.'] = '.' # prevents useless util.fspath() invocation 84 f['.'] = '.' # prevents useless util.fspath() invocation
79 return f 85 return f
80 86
81 @propertycache 87 @repocache('branch')
82 def _branch(self): 88 def _branch(self):
83 try: 89 try:
84 return self._opener.read("branch").strip() or "default" 90 return self._opener.read("branch").strip() or "default"
85 except IOError, inst: 91 except IOError, inst:
86 if inst.errno != errno.ENOENT: 92 if inst.errno != errno.ENOENT: