mercurial/sshpeer.py
branchstable
changeset 23671 e3f30068d2eb
parent 22935 ee297602a208
child 23684 14ac0c1579cd
equal deleted inserted replaced
23669:b65a01a4316b 23671:e3f30068d2eb
    18     def __del__(self):
    18     def __del__(self):
    19         if self.repo:
    19         if self.repo:
    20             self.release()
    20             self.release()
    21 
    21 
    22 def _serverquote(s):
    22 def _serverquote(s):
       
    23     if not s:
       
    24         return s
    23     '''quote a string for the remote shell ... which we assume is sh'''
    25     '''quote a string for the remote shell ... which we assume is sh'''
    24     if re.match('[a-zA-Z0-9@%_+=:,./-]*$', s):
    26     if re.match('[a-zA-Z0-9@%_+=:,./-]*$', s):
    25         return s
    27         return s
    26     return "'%s'" % s.replace("'", "'\\''")
    28     return "'%s'" % s.replace("'", "'\\''")
    27 
    29 
    43         self.path = u.path or "."
    45         self.path = u.path or "."
    44 
    46 
    45         sshcmd = self.ui.config("ui", "ssh", "ssh")
    47         sshcmd = self.ui.config("ui", "ssh", "ssh")
    46         remotecmd = self.ui.config("ui", "remotecmd", "hg")
    48         remotecmd = self.ui.config("ui", "remotecmd", "hg")
    47 
    49 
    48         args = util.sshargs(sshcmd, self.host, self.user, self.port)
    50         args = util.sshargs(sshcmd,
       
    51                             _serverquote(self.host),
       
    52                             _serverquote(self.user),
       
    53                             _serverquote(self.port))
    49 
    54 
    50         if create:
    55         if create:
    51             cmd = '%s %s %s' % (sshcmd, args,
    56             cmd = '%s %s %s' % (sshcmd, args,
    52                 util.shellquote("%s init %s" %
    57                 util.shellquote("%s init %s" %
    53                     (_serverquote(remotecmd), _serverquote(self.path))))
    58                     (_serverquote(remotecmd), _serverquote(self.path))))