diff -r a185b903bda3 -r fbce78c58f1e mercurial/ui.py --- a/mercurial/ui.py Tue Feb 21 18:22:07 2017 +0100 +++ b/mercurial/ui.py Sun Feb 19 01:00:10 2017 +0900 @@ -1288,8 +1288,14 @@ if any(s[1] for s in self._bufferstates): out = self with self.timeblockedsection(blockedtag): - return util.system(cmd, environ=environ, cwd=cwd, onerr=onerr, - errprefix=errprefix, out=out) + return self._runsystem(cmd, environ=environ, cwd=cwd, onerr=onerr, + errprefix=errprefix, out=out) + + def _runsystem(self, cmd, environ, cwd, onerr, errprefix, out): + """actually execute the given shell command (can be overridden by + extensions like chg)""" + return util.system(cmd, environ=environ, cwd=cwd, onerr=onerr, + errprefix=errprefix, out=out) def traceback(self, exc=None, force=False): '''print exception traceback if traceback printing enabled or forced.