##// END OF EJS Templates
Make ssh URL parsing more robust
mpm@selenic.com -
r817:cf1d9a01 default
parent child Browse files
Show More
@@ -1879,9 +1879,9 b' class sshrepository:'
1879 self.url = path
1879 self.url = path
1880 self.ui = ui
1880 self.ui = ui
1881
1881
1882 m = re.match(r'ssh://(([^@]+)@)?([^:/]+)(:(\d+))?(/(.*))?', path)
1882 m = re.match(r'ssh://(([^@]+)@)?([^:/]+)(:(\d+))?(/(.*))', path)
1883 if not m:
1883 if not m:
1884 raise RepoError("couldn't parse destination %s\n" % path)
1884 raise RepoError("couldn't parse destination %s" % path)
1885
1885
1886 self.user = m.group(2)
1886 self.user = m.group(2)
1887 self.host = m.group(3)
1887 self.host = m.group(3)
@@ -1892,6 +1892,9 b' class sshrepository:'
1892 args = self.port and ("%s -p %s") % (args, self.port) or args
1892 args = self.port and ("%s -p %s") % (args, self.port) or args
1893 path = self.path or ""
1893 path = self.path or ""
1894
1894
1895 if not path:
1896 raise RepoError("no remote repository path specified")
1897
1895 cmd = "ssh %s 'hg -R %s serve --stdio'"
1898 cmd = "ssh %s 'hg -R %s serve --stdio'"
1896 cmd = cmd % (args, path)
1899 cmd = cmd % (args, path)
1897
1900
@@ -1906,11 +1909,14 b' class sshrepository:'
1906 self.ui.status("remote: ", l)
1909 self.ui.status("remote: ", l)
1907
1910
1908 def __del__(self):
1911 def __del__(self):
1909 self.pipeo.close()
1912 try:
1910 self.pipei.close()
1913 self.pipeo.close()
1911 for l in self.pipee:
1914 self.pipei.close()
1912 self.ui.status("remote: ", l)
1915 for l in self.pipee:
1913 self.pipee.close()
1916 self.ui.status("remote: ", l)
1917 self.pipee.close()
1918 except:
1919 pass
1914
1920
1915 def dev(self):
1921 def dev(self):
1916 return -1
1922 return -1
General Comments 0
You need to be logged in to leave comments. Login now