diff hglib/client.py @ 169:e6589149b2c8 1.9

client: include stderr message in ServerError on initial communication failure If _readhello() raises ServerError, the server must be unusable. So we can terminate it to get status code and error message.
author Yuya Nishihara <yuya@tcha.org>
date Mon, 07 Sep 2015 22:45:47 +0900
parents d71bd813c9d7
children 2725547a5f92
line wrap: on
line diff
--- a/hglib/client.py	Mon Sep 07 22:32:12 2015 +0900
+++ b/hglib/client.py	Mon Sep 07 22:45:47 2015 +0900
@@ -190,7 +190,12 @@
             raise ValueError('server already open')
 
         self.server = util.popen(self._args, self._env)
-        self._readhello()
+        try:
+            self._readhello()
+        except error.ServerError:
+            ret, serr = self._close()
+            raise error.ServerError('server exited with status %d: %s'
+                                    % (ret, serr.strip()))
         return self
 
     def close(self):