summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShawn O. Pearce <sop@google.com>2012-03-14 15:22:28 -0700
committerShawn O. Pearce <sop@google.com>2012-03-14 15:28:22 -0700
commit898e12a2d9340706eca79e6c611166dfe35a1d3e (patch)
treef417382da1c4237825dc13b47194dd98ecd808f0
parentae0a36c9a59e7f872578b17b3b7fa8f72df3cb59 (diff)
downloadgit-repo-898e12a2d9340706eca79e6c611166dfe35a1d3e.tar.gz
Permit - in URL schemes for special URLs
Clients might be using their own special git-remote-* helper that has a hypen in its name. Permit - in the scheme part of the URL when trying to decide if it is an SSH URL and assume it is *not* SSH if the URL matches "foo-bar://" style. Change-Id: I7ba2d810a614f6e605a441d5972902c4a14e73fd
-rw-r--r--git_config.py2
-rw-r--r--project.py2
2 files changed, 3 insertions, 1 deletions
diff --git a/git_config.py b/git_config.py
index 17937649..eb532d02 100644
--- a/git_config.py
+++ b/git_config.py
@@ -488,7 +488,7 @@ def close_ssh():
488 _master_keys_lock = None 488 _master_keys_lock = None
489 489
490URI_SCP = re.compile(r'^([^@:]*@?[^:/]{1,}):') 490URI_SCP = re.compile(r'^([^@:]*@?[^:/]{1,}):')
491URI_ALL = re.compile(r'^([a-z][a-z+]*)://([^@/]*@?[^/]*)/') 491URI_ALL = re.compile(r'^([a-z][a-z+-]*)://([^@/]*@?[^/]*)/')
492 492
493def GetSchemeFromUrl(url): 493def GetSchemeFromUrl(url):
494 m = URI_ALL.match(url) 494 m = URI_ALL.match(url)
diff --git a/project.py b/project.py
index 1c5f051b..9b23b116 100644
--- a/project.py
+++ b/project.py
@@ -1449,6 +1449,8 @@ class Project(object):
1449 remote = self.GetRemote(self.remote.name) 1449 remote = self.GetRemote(self.remote.name)
1450 bundle_url = remote.url + '/clone.bundle' 1450 bundle_url = remote.url + '/clone.bundle'
1451 bundle_url = GitConfig.ForUser().UrlInsteadOf(bundle_url) 1451 bundle_url = GitConfig.ForUser().UrlInsteadOf(bundle_url)
1452 if GetSchemeFromUrl(bundle_url) in ('persistent-http', 'persistent-https'):
1453 bundle_url = bundle_url[len('persistent-'):]
1452 if GetSchemeFromUrl(bundle_url) not in ('http', 'https'): 1454 if GetSchemeFromUrl(bundle_url) not in ('http', 'https'):
1453 return False 1455 return False
1454 1456