ssh: fix breakage again with dulwich update

dulwich 0.12.x changed the way they pass parameters around, so we reformat that
to what hg-git expects.

This is just plain ridiculous.
This commit is contained in:
Sean Farley 2015-12-14 14:38:42 -08:00
parent 37c52e3cab
commit 23cf0f33f3

View File

@ -14,10 +14,13 @@ def generate_ssh_vendor(ui):
class _Vendor(SSHVendor): class _Vendor(SSHVendor):
def run_command(self, host, command, username=None, port=None): def run_command(self, host, command, username=None, port=None):
# newer dulwich changes the way they pass command and parameters if isinstance(command, basestring):
# around, so we detect that here and reformat it back to what # 0.12.x dulwich sends the raw string
# hg-git expects (e.g. "command 'arg1 arg2'") command = [command]
if len(command) > 1: elif len(command) > 1:
# 0.11.x dulwich sends an array of [command arg1 arg2 ...], so
# we detect that here and reformat it back to what hg-git
# expects (e.g. "command 'arg1 arg2'")
command = ["%s '%s'" % (command[0], ' '.join(command[1:]))] command = ["%s '%s'" % (command[0], ' '.join(command[1:]))]
sshcmd = ui.config("ui", "ssh", "ssh") sshcmd = ui.config("ui", "ssh", "ssh")
args = util.sshargs(sshcmd, host, username, port) args = util.sshargs(sshcmd, host, username, port)