mercurial/hg.py
changeset 49684 1e6c37360527
parent 49305 53e9422a9b45
child 49685 d9791643aab7
--- a/mercurial/hg.py	Sun Nov 06 17:53:17 2022 -0500
+++ b/mercurial/hg.py	Tue Nov 29 18:30:54 2022 +0100
@@ -181,9 +181,13 @@
     ui, path, create=False, presetupfuncs=None, intents=None, createopts=None
 ):
     """return a repository object for the specified path"""
-    obj = _peerlookup(path).instance(
-        ui, path, create, intents=intents, createopts=createopts
-    )
+    cls = _peerlookup(path)
+    obj = cls.instance(ui, path, create, intents=intents, createopts=createopts)
+    _setup_repo_or_peer(ui, obj, presetupfuncs)
+    return obj
+
+
+def _setup_repo_or_peer(ui, obj, presetupfuncs=None):
     ui = getattr(obj, "ui", ui)
     for f in presetupfuncs or []:
         f(ui, obj)
@@ -195,14 +199,12 @@
             if hook:
                 with util.timedcm('reposetup %r', name) as stats:
                     hook(ui, obj)
-                ui.log(
-                    b'extension', b'  > reposetup for %s took %s\n', name, stats
-                )
+                msg = b'  > reposetup for %s took %s\n'
+                ui.log(b'extension', msg, name, stats)
     ui.log(b'extension', b'> all reposetup took %s\n', allreposetupstats)
     if not obj.local():
         for f in wirepeersetupfuncs:
             f(ui, obj)
-    return obj
 
 
 def repository(