diff -r c2bd2f77965b -r dd897eb1699e mercurial/chgserver.py --- a/mercurial/chgserver.py Sun Jan 01 13:16:29 2017 +0100 +++ b/mercurial/chgserver.py Fri Jan 06 16:11:03 2017 +0000 @@ -287,13 +287,14 @@ """Propagate ui.system() request in the following format: payload length (unsigned int), + type, '\0', cmd, '\0', cwd, '\0', envkey, '=', val, '\0', ... envkey, '=', val - and waits: + if type == 'system', waits for: exitcode length (unsigned int), exitcode (int) @@ -303,8 +304,8 @@ self.out = out self.channel = channel - def __call__(self, cmd, environ, cwd): - args = [util.quotecommand(cmd), os.path.abspath(cwd or '.')] + def __call__(self, cmd, environ, cwd, type='system'): + args = [type, util.quotecommand(cmd), os.path.abspath(cwd or '.')] args.extend('%s=%s' % (k, v) for k, v in environ.iteritems()) data = '\0'.join(args) self.out.write(struct.pack('>cI', self.channel, len(data)))