diff options
| author | Josh Guilfoyle <jasta00@gmail.com> | 2009-08-16 09:44:40 -0700 |
|---|---|---|
| committer | Josh Guilfoyle <jasta00@gmail.com> | 2009-08-16 11:26:57 -0700 |
| commit | 4c0f67046543c7c6ab24175e143001f14b76ea01 (patch) | |
| tree | 4716f6c6a3a05480146fe0fd8189bbeac7862bf9 | |
| parent | c24c720b6135a8f7975bf9af265124eee2d464cb (diff) | |
| download | git-repo-4c0f67046543c7c6ab24175e143001f14b76ea01.tar.gz | |
Do not invoke ssh with -p argument when no port has been specified.
This change allows local SSH configuration to choose the port number to
use when not explicitly set in the manifest.
| -rw-r--r-- | git_config.py | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/git_config.py b/git_config.py index e1e20463..fe983c4a 100644 --- a/git_config.py +++ b/git_config.py | |||
| @@ -356,10 +356,14 @@ class RefSpec(object): | |||
| 356 | _ssh_cache = {} | 356 | _ssh_cache = {} |
| 357 | _ssh_master = True | 357 | _ssh_master = True |
| 358 | 358 | ||
| 359 | def _open_ssh(host, port): | 359 | def _open_ssh(host, port=None): |
| 360 | global _ssh_master | 360 | global _ssh_master |
| 361 | 361 | ||
| 362 | key = '%s:%s' % (host, port) | 362 | if port is not None: |
| 363 | key = '%s:%s' % (host, port) | ||
| 364 | else: | ||
| 365 | key = host | ||
| 366 | |||
| 363 | if key in _ssh_cache: | 367 | if key in _ssh_cache: |
| 364 | return True | 368 | return True |
| 365 | 369 | ||
| @@ -372,10 +376,13 @@ def _open_ssh(host, port): | |||
| 372 | 376 | ||
| 373 | command = ['ssh', | 377 | command = ['ssh', |
| 374 | '-o','ControlPath %s' % _ssh_sock(), | 378 | '-o','ControlPath %s' % _ssh_sock(), |
| 375 | '-p',str(port), | ||
| 376 | '-M', | 379 | '-M', |
| 377 | '-N', | 380 | '-N', |
| 378 | host] | 381 | host] |
| 382 | |||
| 383 | if port is not None: | ||
| 384 | command[3:3] = ['-p',str(port)] | ||
| 385 | |||
| 379 | try: | 386 | try: |
| 380 | Trace(': %s', ' '.join(command)) | 387 | Trace(': %s', ' '.join(command)) |
| 381 | p = subprocess.Popen(command) | 388 | p = subprocess.Popen(command) |
| @@ -417,7 +424,7 @@ def _preconnect(url): | |||
| 417 | if ':' in host: | 424 | if ':' in host: |
| 418 | host, port = host.split(':') | 425 | host, port = host.split(':') |
| 419 | else: | 426 | else: |
| 420 | port = 22 | 427 | port = None |
| 421 | if scheme in ('ssh', 'git+ssh', 'ssh+git'): | 428 | if scheme in ('ssh', 'git+ssh', 'ssh+git'): |
| 422 | return _open_ssh(host, port) | 429 | return _open_ssh(host, port) |
| 423 | return False | 430 | return False |
| @@ -425,7 +432,7 @@ def _preconnect(url): | |||
| 425 | m = URI_SCP.match(url) | 432 | m = URI_SCP.match(url) |
| 426 | if m: | 433 | if m: |
| 427 | host = m.group(1) | 434 | host = m.group(1) |
| 428 | return _open_ssh(host, 22) | 435 | return _open_ssh(host) |
| 429 | 436 | ||
| 430 | return False | 437 | return False |
| 431 | 438 | ||
