From patchwork Mon Nov 30 09:42:50 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: D9462: chgserver: catch RepoError while loading configuration From: phabricator X-Patchwork-Id: 47741 Message-Id: To: Phabricator Cc: mercurial-devel@mercurial-scm.org Date: Mon, 30 Nov 2020 09:42:50 +0000 pulkit created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY 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. REPOSITORY rHG Mercurial REVISION DETAIL https://phab.mercurial-scm.org/D9462 AFFECTED FILES mercurial/chgserver.py CHANGE DETAILS To: pulkit, #hg-reviewers Cc: mercurial-patches, mercurial-devel diff --git a/mercurial/chgserver.py b/mercurial/chgserver.py --- a/mercurial/chgserver.py +++ b/mercurial/chgserver.py @@ -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") % inst) + if inst.hint: + self.ui.error(_("(%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