diff --git a/swh/loader/svn/tests/test_utils.py b/swh/loader/svn/tests/test_utils.py --- a/swh/loader/svn/tests/test_utils.py +++ b/swh/loader/svn/tests/test_utils.py @@ -352,12 +352,24 @@ "http://svn.example.org/repos/test", ("external", "http://svn.thirdparty.com/repos/test", None, False), ), + ( + "external/ http://svn.thirdparty.com/repos/test", + "tags", + "http://svn.example.org/repos/test", + ("external", "http://svn.thirdparty.com/repos/test", None, False), + ), ( "external ttp://svn.thirdparty.com/repos/test", "tags", "http://svn.example.org/repos/test", ("external", "ttp://svn.thirdparty.com/repos/test", None, False), ), + ( + "external http//svn.thirdparty.com/repos/test", + "tags", + "http://svn.example.org/repos/test", + ("external", "http//svn.thirdparty.com/repos/test", None, False), + ), ( "C:\\code\\repo\\external http://svn.thirdparty.com/repos/test", "tags", diff --git a/swh/loader/svn/utils.py b/swh/loader/svn/utils.py --- a/swh/loader/svn/utils.py +++ b/swh/loader/svn/utils.py @@ -253,7 +253,7 @@ # property is set external_url = svn_urljoin(repo_url, dir_path, external_part) relative_url = not external_url.startswith(repo_url) - elif re.match(r"^.*://.*", external_part): + elif re.match(r"^.*:*//.*", external_part): # absolute external URL external_url = external_part # subversion >= 1.6 added a quoting and escape mechanism to the syntax so @@ -291,4 +291,4 @@ except ValueError: # handle URL like http://user@svn.example.org/ pass - return (path, external_url, revision, relative_url) + return (path.rstrip("/"), external_url, revision, relative_url)