31 self.wopener = util.opener(self.root) |
31 self.wopener = util.opener(self.root) |
32 self.manifest = manifest.manifest(self.opener) |
32 self.manifest = manifest.manifest(self.opener) |
33 self.changelog = changelog.changelog(self.opener) |
33 self.changelog = changelog.changelog(self.opener) |
34 self.tagscache = None |
34 self.tagscache = None |
35 self.nodetagscache = None |
35 self.nodetagscache = None |
|
36 self.encodepats = None |
|
37 self.decodepats = None |
36 |
38 |
37 if create: |
39 if create: |
38 os.mkdir(self.path) |
40 os.mkdir(self.path) |
39 os.mkdir(self.join("data")) |
41 os.mkdir(self.join("data")) |
40 f = self.opener("hgrc", "w") |
42 f = self.opener("hgrc", "w") |
158 |
160 |
159 def wfile(self, f, mode='r'): |
161 def wfile(self, f, mode='r'): |
160 return self.wopener(f, mode) |
162 return self.wopener(f, mode) |
161 |
163 |
162 def wread(self, filename): |
164 def wread(self, filename): |
163 return self.wopener(filename, 'r').read() |
165 if self.encodepats == None: |
|
166 l = [] |
|
167 for pat, cmd in self.ui.configitems("encode"): |
|
168 mf = util.matcher("", "/", [pat], [], [])[1] |
|
169 l.append((mf, cmd)) |
|
170 self.encodepats = l |
|
171 |
|
172 data = self.wopener(filename, 'r').read() |
|
173 |
|
174 for mf, cmd in self.encodepats: |
|
175 if mf(filename): |
|
176 self.ui.debug("filtering %s through %s\n" % (filename, cmd)) |
|
177 data = util.filter(data, cmd) |
|
178 break |
|
179 |
|
180 return data |
164 |
181 |
165 def wwrite(self, filename, data, fd=None): |
182 def wwrite(self, filename, data, fd=None): |
|
183 if self.decodepats == None: |
|
184 l = [] |
|
185 for pat, cmd in self.ui.configitems("decode"): |
|
186 mf = util.matcher("", "/", [pat], [], [])[1] |
|
187 l.append((mf, cmd)) |
|
188 self.decodepats = l |
|
189 |
|
190 for mf, cmd in self.decodepats: |
|
191 if mf(filename): |
|
192 self.ui.debug("filtering %s through %s\n" % (filename, cmd)) |
|
193 data = util.filter(data, cmd) |
|
194 break |
|
195 |
166 if fd: |
196 if fd: |
167 return fd.write(data) |
197 return fd.write(data) |
168 return self.wopener(filename, 'w').write(data) |
198 return self.wopener(filename, 'w').write(data) |
169 |
199 |
170 def transaction(self): |
200 def transaction(self): |