Index: gclient_scm.py |
diff --git a/gclient_scm.py b/gclient_scm.py |
index 5013759672011bdc009534d0c769563c9591b575..a9c537b9c2baf0b283f230815cfdeb1d5282cb54 100644 |
--- a/gclient_scm.py |
+++ b/gclient_scm.py |
@@ -129,23 +129,16 @@ class GitWrapper(SCMWrapper): |
if args: |
raise gclient_utils.Error("Unsupported argument(s): %s" % ",".join(args)) |
- if self.url.startswith('ssh:'): |
- # Make sure ssh://test@example.com/test.git@stable works |
- regex = r"(ssh://(?:[\w]+@)?[-\w:\.]+/[-\w\.]+)(?:@([\w/]+))?" |
- components = re.search(regex, self.url).groups() |
- else: |
- components = self.url.split("@") |
- url = components[0] |
- revision = None |
+ url, revision = gclient_utils.SplitUrlRevision(self.url) |
+ rev_str = "" |
if options.revision: |
- revision = options.revision |
- elif len(components) == 2: |
- revision = components[1] |
+ # Override the revision number. |
+ revision = str(options.revision) |
+ if revision: |
+ url = '%s@%s' % (url, revision) |
+ rev_str = ' at %s' % revision |
if options.verbose: |
- rev_str = "" |
- if revision: |
- rev_str = ' at %s' % revision |
print("\n_____ %s%s" % (self.relpath, rev_str)) |
if not os.path.exists(self.checkout_path): |
@@ -269,21 +262,16 @@ class SVNWrapper(SCMWrapper): |
if args: |
raise gclient_utils.Error("Unsupported argument(s): %s" % ",".join(args)) |
- url = self.url |
- components = url.split("@") |
- revision = None |
+ url, revision = gclient_utils.SplitUrlRevision(self.url) |
+ base_url = url |
forced_revision = False |
+ rev_str = "" |
if options.revision: |
# Override the revision number. |
- url = '%s@%s' % (components[0], str(options.revision)) |
- revision = options.revision |
- forced_revision = True |
- elif len(components) == 2: |
- revision = components[1] |
- forced_revision = True |
- |
- rev_str = "" |
+ revision = str(options.revision) |
if revision: |
+ forced_revision = True |
+ url = '%s@%s' % (url, revision) |
rev_str = ' at %s' % revision |
if not os.path.exists(checkout_path): |
@@ -309,7 +297,7 @@ class SVNWrapper(SCMWrapper): |
revision = str(from_info_live['Revision']) |
rev_str = ' at %s' % revision |
- if from_info['URL'] != components[0]: |
+ if from_info['URL'] != base_url: |
to_info = CaptureSVNInfo(url, '.') |
if not to_info.get('Repository Root') or not to_info.get('UUID'): |
# The url is invalid or the server is not accessible, it's safer to bail |