# HG changeset patch # User Augie Fackler # Date 1265553812 21600 # Node ID cbd7065e6ab429f6c7c1ffd98f0d503b0b27fce2 # Parent d2d5c09b33d0a738e6c7d51e95f68d4800f5a9bc util: add parseurl method to abstract away differences between 1.4 and 1.5 diff --git a/hgsubversion/util.py b/hgsubversion/util.py --- a/hgsubversion/util.py +++ b/hgsubversion/util.py @@ -78,13 +78,27 @@ def version(ui): def normalize_url(url): if url.startswith('svn+http://') or url.startswith('svn+https://'): url = url[4:] - url, revs, checkout = hg.parseurl(url) + url, revs, checkout = parseurl(url) url = url.rstrip('/') if checkout: url = '%s#%s' % (url, checkout) return url +def parseurl(url, heads=[]): + parsed = hg.parseurl(url, heads) + if len(parsed) == 3: + # old hg, remove when we can be 1.5-only + svn_url, heads, checkout = parsed + else: + svn_url, heads = parsed + if heads: + checkout = heads[0] + else: + checkout = None + return svn_url, heads, checkout + + class PrefixMatch(object): def __init__(self, prefix): self.p = prefix diff --git a/hgsubversion/wrappers.py b/hgsubversion/wrappers.py --- a/hgsubversion/wrappers.py +++ b/hgsubversion/wrappers.py @@ -57,7 +57,7 @@ def incoming(orig, ui, repo, source='def """show incoming revisions from Subversion """ - source, revs, checkout = hg.parseurl(ui.expandpath(source)) + source, revs, checkout = util.parseurl(ui.expandpath(source)) other = hg.repository(ui, source) if 'subversion' not in other.capabilities: return orig(ui, repo, source, **opts) @@ -81,7 +81,7 @@ def outgoing(repo, dest=None, heads=None assert dest.capable('subversion') # split off #rev; TODO implement --revision/#rev support - svnurl, revs, checkout = hg.parseurl(dest.svnurl, heads) + svnurl, revs, checkout = util.parseurl(dest.svnurl, heads) meta = repo.svnmeta() parent = repo.parents()[0].node() hashes = meta.revmap.hashes() @@ -210,7 +210,7 @@ def pull(repo, source, heads=[], force=F svn_url = source.svnurl # Split off #rev - svn_url, heads, checkout = hg.parseurl(svn_url, heads) + svn_url, heads, checkout = util.parseurl(svn_url, heads) old_encoding = util.swap_out_encoding() # TODO implement skipto support