color/progress: subclass ui instead of using wrapfunction (
issue2096)
This resolves the issue of hg cmd --mq not being colorized. This was due
to color wrapping only the instance of ui passed to dispatch._runcommand(),
which isn't the same ui object that mq.mqcommand() receives. After dispatch
calls extensions.loadall(), it makes sure any changes to ui.__class__ in
uisetup are propagated.
progress is updated to wrap ui in the same manner because wrapfunction
doesn't play well when ui.__class__ has been replaced by another extension
(orig will point to the old class method instead of color's).
adding a
? a
adding a
A a
adding a
A a
A a
? b
A a
A b
% should fail
b already tracked!
A a
A b
% should fail
a already tracked!
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
created new head
merging a
warning: conflicts during merge.
merging a failed!
0 files updated, 0 files merged, 0 files removed, 1 files unresolved
use 'hg resolve' to retry unresolved file merges or 'hg update -C' to abandon
M a
? a.orig
% should fail
a already tracked!
M a
? a.orig
% issue683
? a.orig
R a
? a.orig
M a
? a.orig
c: No such file or directory
d: No such file or directory
M a
A c
? a.orig