Mercurial > hg
changeset 817:cf1d9a01dd92
Make ssh URL parsing more robust
author | mpm@selenic.com |
---|---|
date | Mon, 01 Aug 2005 23:23:51 -0800 |
parents | 8674b7803714 |
children | eef752151556 |
files | mercurial/hg.py |
diffstat | 1 files changed, 13 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/hg.py Mon Aug 01 23:17:22 2005 -0800 +++ b/mercurial/hg.py Mon Aug 01 23:23:51 2005 -0800 @@ -1879,9 +1879,9 @@ self.url = path self.ui = ui - m = re.match(r'ssh://(([^@]+)@)?([^:/]+)(:(\d+))?(/(.*))?', path) + m = re.match(r'ssh://(([^@]+)@)?([^:/]+)(:(\d+))?(/(.*))', path) if not m: - raise RepoError("couldn't parse destination %s\n" % path) + raise RepoError("couldn't parse destination %s" % path) self.user = m.group(2) self.host = m.group(3) @@ -1892,6 +1892,9 @@ args = self.port and ("%s -p %s") % (args, self.port) or args path = self.path or "" + if not path: + raise RepoError("no remote repository path specified") + cmd = "ssh %s 'hg -R %s serve --stdio'" cmd = cmd % (args, path) @@ -1906,11 +1909,14 @@ self.ui.status("remote: ", l) def __del__(self): - self.pipeo.close() - self.pipei.close() - for l in self.pipee: - self.ui.status("remote: ", l) - self.pipee.close() + try: + self.pipeo.close() + self.pipei.close() + for l in self.pipee: + self.ui.status("remote: ", l) + self.pipee.close() + except: + pass def dev(self): return -1