From patchwork Mon Jan 15 13:25:33 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: D1859: commandserver: restore cwd in case of exception From: phabricator X-Patchwork-Id: 26760 Message-Id: To: mercurial-devel@mercurial-scm.org Date: Mon, 15 Jan 2018 13:25:33 +0000 This revision was automatically updated to reflect the committed changes. Closed by commit rHG40da2d7b4871: commandserver: restore cwd in case of exception (authored by indygreg, committed by ). REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE https://phab.mercurial-scm.org/D1859?vs=4827&id=4830 REVISION DETAIL https://phab.mercurial-scm.org/D1859 AFFECTED FILES mercurial/commandserver.py CHANGE DETAILS To: indygreg, #hg-reviewers, yuja Cc: mercurial-devel diff --git a/mercurial/commandserver.py b/mercurial/commandserver.py --- a/mercurial/commandserver.py +++ b/mercurial/commandserver.py @@ -247,13 +247,13 @@ req = dispatch.request(args[:], copiedui, self.repo, self.cin, self.cout, self.cerr) - ret = (dispatch.dispatch(req) or 0) & 255 # might return None - - # restore old cwd - if '--cwd' in args: - os.chdir(self.cwd) - - self.cresult.write(struct.pack('>i', int(ret))) + try: + ret = (dispatch.dispatch(req) or 0) & 255 # might return None + self.cresult.write(struct.pack('>i', int(ret))) + finally: + # restore old cwd + if '--cwd' in args: + os.chdir(self.cwd) def getencoding(self): """ writes the current encoding to the result channel """