Mercurial > public > mercurial-scm > hg-stable
diff mercurial/commandserver.py @ 14864:1b872599f39f stable
cmdserver: restore old working dir after dispatch when we have --cwd
author | Idan Kamara <idankk86@gmail.com> |
---|---|
date | Mon, 11 Jul 2011 17:49:45 +0300 |
parents | 712954a67be3 |
children | bb2cffe81a94 |
line wrap: on
line diff
--- a/mercurial/commandserver.py Mon Jul 11 17:46:55 2011 +0300 +++ b/mercurial/commandserver.py Mon Jul 11 17:49:45 2011 +0300 @@ -7,7 +7,7 @@ from i18n import _ import struct -import sys +import sys, os import dispatch, encoding, util logfile = None @@ -131,6 +131,7 @@ based stream to stdout. """ def __init__(self, ui, repo, mode): + self.cwd = os.getcwd() self.ui = ui logpath = ui.config("cmdserver", "log", None) @@ -183,11 +184,15 @@ self.repo.baseui = copiedui self.repo.ui = self.repo.dirstate._ui = self.repoui.copy() - req = dispatch.request(args, copiedui, self.repo, self.cin, + req = dispatch.request(args[:], copiedui, self.repo, self.cin, self.cout, self.cerr) ret = dispatch.dispatch(req) or 0 # might return None + # restore old cwd + if '--cwd' in args: + os.chdir(self.cwd) + self.cresult.write(struct.pack('>i', int(ret))) def getencoding(self):