Mercurial > public > mercurial-scm > hg
comparison mercurial/localrepo.py @ 11698:9df481f8036d
localrepo: refactor filter computation
Separate loading part from access part to be able to tell with:
repo._loadfilter(name)
bool(name in repo.filterpats)
if there is a 'name' filter available.
author | Nicolas Dumazet <nicdumz.commits@gmail.com> |
---|---|
date | Sat, 24 Jul 2010 00:28:20 +0900 |
parents | c47cb3193c53 |
children | eb07fbc21e9c |
comparison
equal
deleted
inserted
replaced
11686:fc360de66217 | 11698:9df481f8036d |
---|---|
508 return self.wopener(f, mode) | 508 return self.wopener(f, mode) |
509 | 509 |
510 def _link(self, f): | 510 def _link(self, f): |
511 return os.path.islink(self.wjoin(f)) | 511 return os.path.islink(self.wjoin(f)) |
512 | 512 |
513 def _filter(self, filter, filename, data): | 513 def _loadfilter(self, filter): |
514 if filter not in self.filterpats: | 514 if filter not in self.filterpats: |
515 l = [] | 515 l = [] |
516 for pat, cmd in self.ui.configitems(filter): | 516 for pat, cmd in self.ui.configitems(filter): |
517 if cmd == '!': | 517 if cmd == '!': |
518 continue | 518 continue |
530 if not inspect.getargspec(fn)[2]: | 530 if not inspect.getargspec(fn)[2]: |
531 oldfn = fn | 531 oldfn = fn |
532 fn = lambda s, c, **kwargs: oldfn(s, c) | 532 fn = lambda s, c, **kwargs: oldfn(s, c) |
533 l.append((mf, fn, params)) | 533 l.append((mf, fn, params)) |
534 self.filterpats[filter] = l | 534 self.filterpats[filter] = l |
535 | |
536 def _filter(self, filter, filename, data): | |
537 self._loadfilter(filter) | |
535 | 538 |
536 for mf, fn, cmd in self.filterpats[filter]: | 539 for mf, fn, cmd in self.filterpats[filter]: |
537 if mf(filename): | 540 if mf(filename): |
538 self.ui.debug("filtering %s through %s\n" % (filename, cmd)) | 541 self.ui.debug("filtering %s through %s\n" % (filename, cmd)) |
539 data = fn(data, cmd, ui=self.ui, repo=self, filename=filename) | 542 data = fn(data, cmd, ui=self.ui, repo=self, filename=filename) |