changeset 4074:0f9381cf9723

Try to pass repo.ui to reposetup hooks The ui object we received in this function may belong to another repo, which could be confusing from the hook point of view. Trying to use the ui object from the newly created repo should avoid this confusion.
author Alexis S. L. Carvalho <alexis@cecm.usp.br>
date Thu, 08 Feb 2007 16:31:21 -0200
parents c620376b8fd6
children 31a679ae7eef
files mercurial/hg.py tests/test-extension tests/test-extension.out
diffstat 3 files changed, 10 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/hg.py	Tue Feb 06 00:09:36 2007 +0300
+++ b/mercurial/hg.py	Thu Feb 08 16:31:21 2007 -0200
@@ -54,6 +54,7 @@
 def repository(ui, path='', create=False):
     """return a repository object for the specified path"""
     repo = _lookup(path).instance(ui, path, create)
+    ui = getattr(repo, "ui", ui)
     for hook in repo_setup_hooks:
         hook(ui, repo)
     return repo
--- a/tests/test-extension	Tue Feb 06 00:09:36 2007 +0300
+++ b/tests/test-extension	Thu Feb 08 16:31:21 2007 -0200
@@ -7,9 +7,12 @@
 
 def uisetup(ui):
     ui.write("uisetup called\\n")
+    ui.write("ui.parentui is%s None\\n" % (ui.parentui is not None
+                                           and "not" or ""))
 
 def reposetup(ui, repo):
     ui.write("reposetup called for %s\\n" % os.path.basename(repo.root))
+    ui.write("ui %s= repo.ui\\n" % (ui == repo.ui and "=" or "!"))
 
 def foo(ui, *args, **kwargs):
     ui.write("Foo\\n")
--- a/tests/test-extension.out	Tue Feb 06 00:09:36 2007 +0300
+++ b/tests/test-extension.out	Thu Feb 08 16:31:21 2007 -0200
@@ -1,9 +1,15 @@
 uisetup called
+ui.parentui is None
 reposetup called for a
+ui == repo.ui
 Foo
 uisetup called
+ui.parentui is None
 reposetup called for a
+ui == repo.ui
 reposetup called for b
+ui == repo.ui
 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 uisetup called
+ui.parentui is None
 Bar