Mercurial > public > mercurial-scm > hg
comparison mercurial/localrepo.py @ 12707:2216ab103ea8
localrepo: load filter patterns outside of _filter
author | Nicolas Dumazet <nicdumz.commits@gmail.com> |
---|---|
date | Sun, 10 Oct 2010 19:10:16 +0200 |
parents | 9ca08fbb750a |
children | 8a08b12ae88e |
comparison
equal
deleted
inserted
replaced
12706:9ca08fbb750a | 12707:2216ab103ea8 |
---|---|
586 fn = lambda s, c, **kwargs: oldfn(s, c) | 586 fn = lambda s, c, **kwargs: oldfn(s, c) |
587 l.append((mf, fn, params)) | 587 l.append((mf, fn, params)) |
588 self.filterpats[filter] = l | 588 self.filterpats[filter] = l |
589 return self.filterpats[filter] | 589 return self.filterpats[filter] |
590 | 590 |
591 def _filter(self, filter, filename, data): | 591 def _filter(self, filterpats, filename, data): |
592 for mf, fn, cmd in self._loadfilter[filter]: | 592 for mf, fn, cmd in filterpats: |
593 if mf(filename): | 593 if mf(filename): |
594 self.ui.debug("filtering %s through %s\n" % (filename, cmd)) | 594 self.ui.debug("filtering %s through %s\n" % (filename, cmd)) |
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 |
603 def wread(self, filename): | 603 def wread(self, filename): |
604 if self._link(filename): | 604 if self._link(filename): |
605 data = os.readlink(self.wjoin(filename)) | 605 data = os.readlink(self.wjoin(filename)) |
606 else: | 606 else: |
607 data = self.wopener(filename, 'r').read() | 607 data = self.wopener(filename, 'r').read() |
608 return self._filter("encode", filename, data) | 608 return self._filter(self._loadfilter("encode"), filename, data) |
609 | 609 |
610 def wwrite(self, filename, data, flags): | 610 def wwrite(self, filename, data, flags): |
611 data = self._filter("decode", filename, data) | 611 data = self._filter(self._loadfilter("decode"), filename, data) |
612 try: | 612 try: |
613 os.unlink(self.wjoin(filename)) | 613 os.unlink(self.wjoin(filename)) |
614 except OSError: | 614 except OSError: |
615 pass | 615 pass |
616 if 'l' in flags: | 616 if 'l' in flags: |
619 self.wopener(filename, 'w').write(data) | 619 self.wopener(filename, 'w').write(data) |
620 if 'x' in flags: | 620 if 'x' in flags: |
621 util.set_flags(self.wjoin(filename), False, True) | 621 util.set_flags(self.wjoin(filename), False, True) |
622 | 622 |
623 def wwritedata(self, filename, data): | 623 def wwritedata(self, filename, data): |
624 return self._filter("decode", filename, data) | 624 return self._filter(self._loadfilter("decode"), filename, data) |
625 | 625 |
626 def transaction(self, desc): | 626 def transaction(self, desc): |
627 tr = self._transref and self._transref() or None | 627 tr = self._transref and self._transref() or None |
628 if tr and tr.running(): | 628 if tr and tr.running(): |
629 return tr.nest() | 629 return tr.nest() |