Mercurial > public > mercurial-scm > hg
comparison mercurial/localrepo.py @ 12708:8a08b12ae88e
localrepo: use propertycaches to access encode/decode filters
author | Nicolas Dumazet <nicdumz.commits@gmail.com> |
---|---|
date | Sun, 10 Oct 2010 18:58:45 +0200 |
parents | 2216ab103ea8 |
children | 18b5b6392fcf |
comparison
equal
deleted
inserted
replaced
12707:2216ab103ea8 | 12708:8a08b12ae88e |
---|---|
595 data = fn(data, cmd, ui=self.ui, repo=self, filename=filename) | 595 data = fn(data, cmd, ui=self.ui, repo=self, filename=filename) |
596 break | 596 break |
597 | 597 |
598 return data | 598 return data |
599 | 599 |
600 @propertycache | |
601 def _encodefilterpats(self): | |
602 return self._loadfilter('encode') | |
603 | |
604 @propertycache | |
605 def _decodefilterpats(self): | |
606 return self._loadfilter('decode') | |
607 | |
600 def adddatafilter(self, name, filter): | 608 def adddatafilter(self, name, filter): |
601 self._datafilters[name] = filter | 609 self._datafilters[name] = filter |
602 | 610 |
603 def wread(self, filename): | 611 def wread(self, filename): |
604 if self._link(filename): | 612 if self._link(filename): |
605 data = os.readlink(self.wjoin(filename)) | 613 data = os.readlink(self.wjoin(filename)) |
606 else: | 614 else: |
607 data = self.wopener(filename, 'r').read() | 615 data = self.wopener(filename, 'r').read() |
608 return self._filter(self._loadfilter("encode"), filename, data) | 616 return self._filter(self._encodefilterpats, filename, data) |
609 | 617 |
610 def wwrite(self, filename, data, flags): | 618 def wwrite(self, filename, data, flags): |
611 data = self._filter(self._loadfilter("decode"), filename, data) | 619 data = self._filter(self._decodefilterpats, filename, data) |
612 try: | 620 try: |
613 os.unlink(self.wjoin(filename)) | 621 os.unlink(self.wjoin(filename)) |
614 except OSError: | 622 except OSError: |
615 pass | 623 pass |
616 if 'l' in flags: | 624 if 'l' in flags: |
619 self.wopener(filename, 'w').write(data) | 627 self.wopener(filename, 'w').write(data) |
620 if 'x' in flags: | 628 if 'x' in flags: |
621 util.set_flags(self.wjoin(filename), False, True) | 629 util.set_flags(self.wjoin(filename), False, True) |
622 | 630 |
623 def wwritedata(self, filename, data): | 631 def wwritedata(self, filename, data): |
624 return self._filter(self._loadfilter("decode"), filename, data) | 632 return self._filter(self._decodefilterpats, filename, data) |
625 | 633 |
626 def transaction(self, desc): | 634 def transaction(self, desc): |
627 tr = self._transref and self._transref() or None | 635 tr = self._transref and self._transref() or None |
628 if tr and tr.running(): | 636 if tr and tr.running(): |
629 return tr.nest() | 637 return tr.nest() |