changeset 3281:703e8398ac57

topic: move function wrapping from reposetup to uisetup Having the function un reposetup means they get wrapped over and over again for long lived process.
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Tue, 12 Dec 2017 01:27:12 +0100
parents e642bad8174a
children 3675fe74521d
files CHANGELOG hgext3rd/topic/__init__.py
diffstat 2 files changed, 5 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/CHANGELOG	Tue Dec 12 00:16:55 2017 +0100
+++ b/CHANGELOG	Tue Dec 12 01:27:12 2017 +0100
@@ -25,6 +25,7 @@
 Topic (0.5.2)
 
   * makes code more resilient to partiel initialization
+  * avoid over wrapping inside of long living process
 
 7.0.1 -- 2017-11-14
 -------------------
--- a/hgext3rd/topic/__init__.py	Tue Dec 12 00:16:55 2017 +0100
+++ b/hgext3rd/topic/__init__.py	Tue Dec 12 01:27:12 2017 +0100
@@ -322,6 +322,10 @@
 
     cmdutil.summaryhooks.add('topic', summaryhook)
 
+    # Wrap workingctx extra to return the topic name
+    extensions.wrapfunction(context.workingctx, '__init__', wrapinit)
+    # Wrap changelog.add to drop empty topic
+    extensions.wrapfunction(changelog.changelog, 'add', wrapadd)
 
 def reposetup(ui, repo):
     if not isinstance(repo, localrepo.localrepository):
@@ -483,10 +487,6 @@
         repo.names.addnamespace(namespaces.namespace(
             'topics', 'topic', namemap=_namemap, nodemap=_nodemap,
             listnames=lambda repo: repo.topics))
-    # Wrap workingctx extra to return the topic name
-    extensions.wrapfunction(context.workingctx, '__init__', wrapinit)
-    # Wrap changelog.add to drop empty topic
-    extensions.wrapfunction(changelog.changelog, 'add', wrapadd)
 
 def wrapinit(orig, self, repo, *args, **kwargs):
     orig(self, repo, *args, **kwargs)