Mercurial > hgsubversion
diff hgsubversion/util.py @ 469:5567af673f83
Revive svn+http(s) URLs support (issue94)
Telling svn from mercurial repository automatically is not always possible, or
at least not seamlessly. Let 'http://repo.com/svn' be an svn repository,
protected with basic authentication. Trying to clone it directly does something
like:
1- Open it like a mercurial repository:
* send between command, ask for credentials, fail
* fallback to static-http, ask for crendentials two times, fail
2- Open it like an svn repository
Mercurial [auth] facility is helpful here, but few people know about it, and it
may seem weird to store svn credentials in mercurial configuration. An svn-like
password manager would not help either because all connections attempts in [1]
fail and it's unlikely we would store credentials in this situation. Instead,
we can clone 'svn+http://repo.com/svn', which will skip step [1].
author | Patrick Mezard <pmezard@gmail.com> |
---|---|
date | Sat, 18 Jul 2009 20:44:33 -0500 |
parents | d487bbe0e8af |
children | 15443c592f7a |
line wrap: on
line diff
--- a/hgsubversion/util.py +++ b/hgsubversion/util.py @@ -70,8 +70,10 @@ def version(ui): return node.hex(ver)[:12] -def normalize_url(svnurl): - url, revs, checkout = hg.parseurl(svnurl) +def normalize_url(url): + if url.startswith('svn+http://'): + url = url[4:] + url, revs, checkout = hg.parseurl(url) url = url.rstrip('/') if checkout: url = '%s#%s' % (url, checkout)