mercurial/wireprotov2peer.py
changeset 39486 43d92d68ac88
parent 39485 42bc1c70a6b8
child 39559 07b58266bce3
--- a/mercurial/wireprotov2peer.py	Thu Aug 23 13:50:47 2018 -0700
+++ b/mercurial/wireprotov2peer.py	Wed Sep 05 09:04:40 2018 -0700
@@ -27,7 +27,7 @@
         msg = _(atom[b'msg'])
 
         if b'args' in atom:
-            msg = msg % atom[b'args']
+            msg = msg % tuple(atom[b'args'])
 
         chunks.append(msg)
 
@@ -163,8 +163,10 @@
                 if overall['status'] == 'ok':
                     self._futures[frame.requestid].set_result(decoder(objs))
                 else:
-                    e = error.RepoError(
-                        formatrichmessage(overall['error']['message']))
+                    atoms = [{'msg': overall['error']['message']}]
+                    if 'args' in overall['error']:
+                        atoms[0]['args'] = overall['error']['args']
+                    e = error.RepoError(formatrichmessage(atoms))
                     self._futures[frame.requestid].set_exception(e)
             else:
                 self._futures[frame.requestid].set_result(response)