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).
% - Rebasing B onto E - check keep
@ 5:F:notdefault
|
| o 4:E:
| |
| o 3:D:
|/
| o 2:C:
| |
| o 1:B:
|/
o 0:A:
warning: conflicts during merge.
merging A failed!
abort: fix unresolved conflicts with hg resolve then run hg rebase --continue
merging A
% - Solve the conflict and go on
@ 7:C:
|
o 6:B:
|
| o 5:F:notdefault
| |
o | 4:E:
| |
o | 3:D:
|/
| o 2:C:
| |
| o 1:B:
|/
o 0:A:
% - Rebase F onto E - check keepbranches
@ 5:F:notdefault
|
| o 4:E:
| |
| o 3:D:
|/
| o 2:C:
| |
| o 1:B:
|/
o 0:A:
warning: conflicts during merge.
merging A failed!
abort: fix unresolved conflicts with hg resolve then run hg rebase --continue
merging A
% - Solve the conflict and go on
saved backup bundle to
@ 5:F:notdefault
|
o 4:E:
|
o 3:D:
|
| o 2:C:
| |
| o 1:B:
|/
o 0:A: