diff --git a/gclient_utils.py b/gclient_utils.py index 4a5989c0c..03d779244 100644 --- a/gclient_utils.py +++ b/gclient_utils.py @@ -29,7 +29,7 @@ def SplitUrlRevision(url): """Splits url and returns a two-tuple: url, rev""" if url.startswith('ssh:'): # Make sure ssh://test@example.com/test.git@stable works - regex = r"(ssh://(?:[\w]+@)?[-\w:\.]+/[-\w\.]+)(?:@([\w/]+))?" + regex = r"(ssh://(?:[\w]+@)?[-\w:\.]+/[-\w\./]+)(?:@([\w/]+))?" components = re.search(regex, url).groups() else: components = url.split("@") diff --git a/tests/gclient_utils_test.py b/tests/gclient_utils_test.py index 6c9a107d9..d1150346b 100644 --- a/tests/gclient_utils_test.py +++ b/tests/gclient_utils_test.py @@ -63,6 +63,13 @@ class SplitUrlRevisionTestCase(SuperMoxTestBase): out_url, out_rev = gclient_utils.SplitUrlRevision("%s@%s" % (url, rev)) self.assertEquals(out_rev, rev) self.assertEquals(out_url, url) + url = "ssh://example.com/git/test.git" + out_url, out_rev = gclient_utils.SplitUrlRevision(url) + self.assertEquals(out_rev, None) + self.assertEquals(out_url, url) + out_url, out_rev = gclient_utils.SplitUrlRevision("%s@%s" % (url, rev)) + self.assertEquals(out_rev, rev) + self.assertEquals(out_url, url) def testSVNUrl(self): url = "svn://example.com/test"