blackbox: also log alias expansions
This should be extremely useful for helping users debug without having
to see their complete configuration.
Shell aliases do not get their expansion logged, because we don't look
and see if we're in a repo before we dive into the execution of a
shell alias. As a result, the ui object doesn't know where to log.
--- a/mercurial/dispatch.py Thu Aug 25 01:06:32 2016 -0400
+++ b/mercurial/dispatch.py Tue Aug 23 16:40:08 2016 -0400
@@ -500,6 +500,8 @@
ui.debug("alias '%s' shadows command '%s'\n" %
(self.name, self.cmdname))
+ ui.log('commandalias', "alias '%s' expands to '%s'\n",
+ self.name, self.definition)
if util.safehasattr(self, 'shell'):
return self.fn(ui, *args, **opts)
else:
--- a/tests/test-blackbox.t Thu Aug 25 01:06:32 2016 -0400
+++ b/tests/test-blackbox.t Tue Aug 23 16:40:08 2016 -0400
@@ -4,6 +4,8 @@
> blackbox=
> mock=$TESTDIR/mockblackbox.py
> mq=
+ > [alias]
+ > confuse = log --limit 3
> EOF
$ hg init blackboxtest
$ cd blackboxtest
@@ -17,6 +19,18 @@
1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000 (5000)> add a exited 0 after * seconds (glob)
1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000+ (5000)> blackbox
+alias expansion is logged
+ $ hg confuse
+ $ hg blackbox
+ 1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000 (5000)> add a
+ 1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000 (5000)> add a exited 0 after * seconds (glob)
+ 1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000+ (5000)> blackbox
+ 1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000+ (5000)> blackbox --config blackbox.dirty=True exited 0 after * seconds (glob)
+ 1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000 (5000)> confuse
+ 1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000 (5000)> alias 'confuse' expands to 'log --limit 3'
+ 1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000 (5000)> confuse exited 0 after * seconds (glob)
+ 1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000 (5000)> blackbox
+
incoming change tracking
create two heads to verify that we only see one change in the log later