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