# HG changeset patch # User Steve Borho # Date 2007-12-12 22:44:26 # Node ID e2e8e977a6cb08c61894695177747bf451ecd07a # Parent 4d6b630d393953a2ac913232658b3bfb5f05ce93 win32: fix ssh://host:port when using Plink Moves ssh argument building to platform specific utils code. The win32 version looks for plink in ssh command string and uses '-P' in lieu of '-p' for specifying a port diff --git a/mercurial/sshrepo.py b/mercurial/sshrepo.py --- a/mercurial/sshrepo.py +++ b/mercurial/sshrepo.py @@ -24,12 +24,11 @@ class sshrepository(remoterepository): self.port = m.group(5) 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 - sshcmd = self.ui.config("ui", "ssh", "ssh") remotecmd = self.ui.config("ui", "remotecmd", "hg") + args = util.sshargs(sshcmd, self.host, self.user, self.port) + if create: cmd = '%s %s "%s init %s"' cmd = cmd % (sshcmd, args, remotecmd, self.path) diff --git a/mercurial/util.py b/mercurial/util.py --- a/mercurial/util.py +++ b/mercurial/util.py @@ -960,6 +960,12 @@ if os.name == 'nt': pf = pf[1:-1] # Remove the quotes return pf + def sshargs(sshcmd, host, user, port): + '''Build argument list for ssh or Plink''' + pflag = 'plink' in sshcmd.lower() and '-P' or '-p' + args = user and ("%s@%s" % (user, host)) or host + return port and ("%s %s %s") % (args, pflag, port) or args + def testpid(pid): '''return False if pid dead, True if running or not known''' return True @@ -1102,6 +1108,11 @@ else: pf = pf[1:-1] # Remove the quotes return pf + def sshargs(sshcmd, host, user, port): + '''Build argument list for ssh''' + args = user and ("%s@%s" % (user, host)) or host + return port and ("%s -p %s") % (args, port) or args + def is_exec(f): """check whether a file is executable""" return (os.lstat(f).st_mode & 0100 != 0)