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).
#!/bin/sh
"$TESTDIR/hghave" inotify || exit 80
hg init
touch a b c d e f
echo "[extensions]" >> $HGRCPATH
echo "inotify=" >> $HGRCPATH
echo inserv1
echo % inserve
hg inserve -d --pid-file=hg.pid 2>&1
cat hg.pid >> "$DAEMON_PIDS"
hg ci -Am m
# let the daemon finish its stuff
sleep 1
#Need to test all file opperations
hg rm a
rm b
echo c >> c
touch g
hg add g
hg mv e h
hg status
sleep 1
echo "Are we able to kill the service? if not, the service died on some error"
kill `cat hg.pid`