From 898e12a2d9340706eca79e6c611166dfe35a1d3e Mon Sep 17 00:00:00 2001 From: "Shawn O. Pearce" Date: Wed, 14 Mar 2012 15:22:28 -0700 Subject: [PATCH] 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 --- git_config.py | 2 +- project.py | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) 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(): _master_keys_lock = None URI_SCP = re.compile(r'^([^@:]*@?[^:/]{1,}):') -URI_ALL = re.compile(r'^([a-z][a-z+]*)://([^@/]*@?[^/]*)/') +URI_ALL = re.compile(r'^([a-z][a-z+-]*)://([^@/]*@?[^/]*)/') def GetSchemeFromUrl(url): 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): remote = self.GetRemote(self.remote.name) bundle_url = remote.url + '/clone.bundle' bundle_url = GitConfig.ForUser().UrlInsteadOf(bundle_url) + if GetSchemeFromUrl(bundle_url) in ('persistent-http', 'persistent-https'): + bundle_url = bundle_url[len('persistent-'):] if GetSchemeFromUrl(bundle_url) not in ('http', 'https'): return False