[PATCH] dispatch: propagate ui command options to the local ui (issue2523)

Idan Kamara idankk86 at gmail.com
Sun Jun 12 16:38:31 CDT 2011


# HG changeset patch
# User Idan Kamara <idankk86 at gmail.com>
# Date 1307913566 -10800
# Node ID 5f743d42591616ba5d1527fd4cdb24cd9e42e4ff
# Parent  ab89aec091e5bf82429a08a2953d5614d5b2833f
dispatch: propagate ui command options to the local ui (issue2523)

so the ui object passed to pre/post python hooks has the verbose flag
(and the rest) set correctly

diff -r ab89aec091e5 -r 5f743d425916 mercurial/dispatch.py
--- a/mercurial/dispatch.py	Sun Jun 12 23:30:39 2011 +0300
+++ b/mercurial/dispatch.py	Mon Jun 13 00:19:26 2011 +0300
@@ -572,16 +572,20 @@
         atexit.register(print_time)
 
     if options['verbose'] or options['debug'] or options['quiet']:
-        ui.setconfig('ui', 'verbose', str(bool(options['verbose'])))
-        ui.setconfig('ui', 'debug', str(bool(options['debug'])))
-        ui.setconfig('ui', 'quiet', str(bool(options['quiet'])))
+        for ui in (ui, lui):
+            ui.setconfig('ui', 'verbose', str(bool(options['verbose'])))
+            ui.setconfig('ui', 'debug', str(bool(options['debug'])))
+            ui.setconfig('ui', 'quiet', str(bool(options['quiet'])))
     if options['traceback']:
-        ui.setconfig('ui', 'traceback', 'on')
+        for ui in (ui, lui):
+            ui.setconfig('ui', 'traceback', 'on')
     if options['noninteractive']:
-        ui.setconfig('ui', 'interactive', 'off')
+        for ui in (ui, lui):
+            ui.setconfig('ui', 'interactive', 'off')
 
     if cmdoptions.get('insecure', False):
-        ui.setconfig('web', 'cacerts', '')
+        for ui in (ui, lui):
+            ui.setconfig('web', 'cacerts', '')
 
     if options['help']:
         return commands.help_(ui, cmd, options['version'])
diff -r ab89aec091e5 -r 5f743d425916 tests/test-hook.t
--- a/tests/test-hook.t	Sun Jun 12 23:30:39 2011 +0300
+++ b/tests/test-hook.t	Mon Jun 13 00:19:26 2011 +0300
@@ -346,6 +346,9 @@
   > def brokenhook(**args):
   >     return 1 + {}
   > 
+  > def verbosehook(ui, **args):
+  >     ui.note('verbose output from hook\n')
+  > 
   > class container:
   >     unreachable = 1
   > EOF
@@ -535,3 +538,14 @@
   cb9a9f314b8b
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 
+make sure --verbose (and --quiet/--debug etc.) are propogated to the local ui
+that is passed to pre/post hooks
+
+  $ echo '[hooks]' > .hg/hgrc
+  $ echo 'pre-identify = python:hooktests.verbosehook' >> .hg/hgrc
+  $ hg id
+  cb9a9f314b8b
+  $ hg id --verbose
+  calling hook pre-identify: hooktests.verbosehook
+  verbose output from hook
+  cb9a9f314b8b


More information about the Mercurial-devel mailing list