1) Each time a new thgrepo instance is created, or a repo ui is
invalidated, we must load all unloaded extensions
2) The thgrepo class needs an extensions() method that returns the
(cached) extensions enabled for that repo
3) thgrepo.extensions() should be used everywhere we check for an
extension being available for use.
There are probably more details to work through. I expect many
extensions assume repository objects are always created after the
extension has been loaded, to pick up patched/wrapped methods and
hooks. In fact, there's plenty of evidence hgtk doesn't do this right
for even the single repository case.
--
Steve Borho