changeset 46001:aab70f05d6ec

chgserver: catch RepoError while loading configuration Recent share safe work introduced functionality to read share source config file on dispatch. This can result in RepoError while reading config file as the shared source might not be present. `test-share.t#safe` was failing with chg earlier because of this. Differential Revision: https://phab.mercurial-scm.org/D9462
author Pulkit Goyal <7895pulkit@gmail.com>
date Mon, 30 Nov 2020 14:11:03 +0530
parents c1bb02738f96
children 705c37f22859
files mercurial/chgserver.py
diffstat 1 files changed, 11 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/chgserver.py	Sat Nov 28 16:59:40 2020 -0500
+++ b/mercurial/chgserver.py	Mon Nov 30 14:11:03 2020 +0530
@@ -504,10 +504,21 @@
         the instructions.
         """
         args = self._readlist()
+        errorraised = False
         try:
             self.ui, lui = _loadnewui(self.ui, args, self.cdebug)
+        except error.RepoError as inst:
+            # RepoError can be raised while trying to read shared source
+            # configuration
+            self.ui.error(_(b"abort: %s\n") % stringutil.forcebytestr(inst))
+            if inst.hint:
+                self.ui.error(_(b"(%s)\n") % inst.hint)
+            errorraised = True
         except error.Abort as inst:
             self.ui.error(inst.format())
+            errorraised = True
+
+        if errorraised:
             self.ui.flush()
             self.cresult.write(b'exit 255')
             return