@classmethod<EOL><INDENT>def get_url_and_revision_from_pip_url(cls, pip_url):<DEDENT>
if '<STR_LIT>' not in pip_url:<EOL><INDENT>assert '<STR_LIT>' not in pip_url<EOL>pip_url = pip_url.replace('<STR_LIT>', '<STR_LIT>')<EOL>url, rev = super(GitRepo, cls).get_url_and_revision_from_pip_url(pip_url)<EOL>url = url.replace('<STR_LIT>', '<STR_LIT>')<EOL><DEDENT>elif '<STR_LIT>' in pip_url:<EOL><INDENT>raise exc.LibVCSException(<EOL>"<STR_LIT>"<EOL>"<STR_LIT>"<EOL>% (pip_url, "<STR_LIT>")<EOL>)<EOL><DEDENT>else:<EOL><INDENT>url, rev = super(GitRepo, cls).get_url_and_revision_from_pip_url(pip_url)<EOL><DEDENT>return url, rev<EOL>
Prefixes stub URLs like 'user@hostname:user/repo.git' with 'ssh://'.
That's required because although they use SSH they sometimes doesn't
work with a ssh:// scheme (e.g. Github). But we need a scheme for
parsing. Hence we remove it again afterwards and return it as a stub.
The manpage for git-clone(1) refers to this as the "scp-like styntax".