[PATCH 04 of 10] localrepo: move ui loading to baselocalrepository

Jun Wu quark at fb.com
Thu Feb 9 20:46:18 EST 2017


# HG changeset patch
# User Jun Wu <quark at fb.com>
# Date 1486675034 28800
#      Thu Feb 09 13:17:14 2017 -0800
# Node ID 5e47a19fae82f4659f1e7df37f8f26dd56c4f246
# Parent  2c1834e1e6b5f734c27199d47de9b2252b8f4913
# Available At https://bitbucket.org/quark-zju/hg-draft
#              hg pull https://bitbucket.org/quark-zju/hg-draft -r 5e47a19fae82
localrepo: move ui loading to baselocalrepository

See the previous patch for why.

diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py
--- a/mercurial/localrepo.py
+++ b/mercurial/localrepo.py
@@ -258,4 +258,16 @@ class baselocalrepository(object):
 
         self.baseui = baseui
+        self.ui = baseui.copy()
+        self.ui.copy = baseui.copy # prevent copying repo configuration
+        try:
+            self.ui.readconfig(self.join("hgrc"), self.root)
+            self._loadextensions()
+        except IOError:
+            pass
+
+    def _loadextensions(self):
+        # baselocalrepository is side-effect free, so "loading extensions" is a
+        # no-op. implement this in subclasses.
+        pass
 
     def join(self, f, *insidef):
@@ -287,11 +299,4 @@ class localrepository(baselocalrepositor
         self.nofsauditor = pathutil.pathauditor(self.root, self._checknested,
                                                 realfs=False)
-        self.ui = baseui.copy()
-        self.ui.copy = baseui.copy # prevent copying repo configuration
-        try:
-            self.ui.readconfig(self.join("hgrc"), self.root)
-            extensions.loadall(self.ui)
-        except IOError:
-            pass
 
         if self.featuresetupfuncs:
@@ -392,4 +397,7 @@ class localrepository(baselocalrepositor
         self._writecaches()
 
+    def _loadextensions(self):
+        extensions.loadall(self.ui)
+
     def _writecaches(self):
         if self._revbranchcache:


More information about the Mercurial-devel mailing list