Mercurial > hg
comparison hgext/largefiles/overrides.py @ 27586:42910f9fffeb
revset: use delayregistrar to register predicate in extension easily
Previous patch introduced 'revset.predicate' decorator to register
revset predicate function easily.
But it shouldn't be used in extension directly, because it registers
specified function immediately. Registration itself can't be restored,
even if extension loading fails after that.
Therefore, registration should be delayed until 'uisetup()' or so.
This patch uses 'extpredicate' decorator derived from 'delayregistrar'
to register predicate in extension easily.
This patch also tests whether 'registrar.delayregistrar' avoids
function registration if 'setup()' isn't invoked on it, because
'extpredicate' is the first user of it.
author | FUJIWARA Katsunori <foozy@lares.dti.ne.jp> |
---|---|
date | Tue, 29 Dec 2015 23:58:30 +0900 |
parents | 98266b1d144d |
children | af13eaf9ab8c |
comparison
equal
deleted
inserted
replaced
27585:60bf90eb8bf8 | 27586:42910f9fffeb |
---|---|
810 finally: | 810 finally: |
811 del repo.firstpulled | 811 del repo.firstpulled |
812 ui.status(_("%d largefiles cached\n") % numcached) | 812 ui.status(_("%d largefiles cached\n") % numcached) |
813 return result | 813 return result |
814 | 814 |
815 revsetpredicate = revset.extpredicate() | |
816 | |
817 @revsetpredicate('pulled()') | |
815 def pulledrevsetsymbol(repo, subset, x): | 818 def pulledrevsetsymbol(repo, subset, x): |
816 """``pulled()`` | 819 """Changesets that just has been pulled. |
817 Changesets that just has been pulled. | |
818 | 820 |
819 Only available with largefiles from pull --lfrev expressions. | 821 Only available with largefiles from pull --lfrev expressions. |
820 | 822 |
821 .. container:: verbose | 823 .. container:: verbose |
822 | 824 |