mirror of
https://github.com/facebook/sapling.git
synced 2024-10-08 07:49:11 +03:00
Allow using a ssh repository without a path.
This uses the home directory on the remote side or the directory specified in the command in .ssh/authorized_keys
This commit is contained in:
parent
1706e2bc80
commit
3c84fc273d
@ -2157,26 +2157,22 @@ class sshrepository(remoterepository):
|
||||
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" % path)
|
||||
|
||||
self.user = m.group(2)
|
||||
self.host = m.group(3)
|
||||
self.port = m.group(5)
|
||||
self.path = m.group(7)
|
||||
self.path = m.group(7) or "."
|
||||
|
||||
args = self.user and ("%s@%s" % (self.user, self.host)) or self.host
|
||||
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")
|
||||
|
||||
sshcmd = self.ui.config("ui", "ssh", "ssh")
|
||||
remotecmd = self.ui.config("ui", "remotecmd", "hg")
|
||||
cmd = "%s %s '%s -R %s serve --stdio'"
|
||||
cmd = cmd % (sshcmd, args, remotecmd, path)
|
||||
cmd = cmd % (sshcmd, args, remotecmd, self.path)
|
||||
|
||||
self.pipeo, self.pipei, self.pipee = os.popen3(cmd)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user