mercurial/chgserver.py
changeset 30726 dd897eb1699e
parent 30669 10b17ed9b591
child 30727 18eb63ec8475
--- 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)))