# HG changeset patch # User Matt Mackall # Date 1187212236 18000 # Node ID 92236732d5a126e8200b1f42ecffca167f94797a # Parent 664a1c312972dc78b0117850b0778306585b22a9 move parseurl from cmdutil to hg diff --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py --- a/mercurial/cmdutil.py +++ b/mercurial/cmdutil.py @@ -459,15 +459,6 @@ def setremoteconfig(ui, opts): if opts.get('remotecmd'): ui.setconfig("ui", "remotecmd", opts['remotecmd']) -def parseurl(url, revs): - '''parse url#branch, returning url, branch + revs''' - - if '#' not in url: - return url, (revs or None) - - url, rev = url.split('#', 1) - return url, revs + [rev] - def revpair(repo, revs): '''return pair of nodes, given list of revisions. second item can be None, meaning use working dir.''' diff --git a/mercurial/commands.py b/mercurial/commands.py --- a/mercurial/commands.py +++ b/mercurial/commands.py @@ -336,7 +336,7 @@ def bundle(ui, repo, fname, dest=None, * visit.append(p) else: cmdutil.setremoteconfig(ui, opts) - dest, revs = cmdutil.parseurl( + dest, revs = hg.parseurl( ui.expandpath(dest or 'default-push', dest or 'default'), revs) other = hg.repository(ui, dest) o = repo.findoutgoing(other, force=opts['force']) @@ -1475,7 +1475,7 @@ def identify(ui, repo, source=None, output = [] if source: - source, revs = cmdutil.parseurl(ui.expandpath(source), []) + source, revs = hg.parseurl(ui.expandpath(source), []) srepo = hg.repository(ui, source) if not rev and revs: rev = revs[0] @@ -1638,7 +1638,7 @@ def incoming(ui, repo, source="default", See pull for valid source format details. """ - source, revs = cmdutil.parseurl(ui.expandpath(source), opts['rev']) + source, revs = hg.parseurl(ui.expandpath(source), opts['rev']) cmdutil.setremoteconfig(ui, opts) other = hg.repository(ui, source) @@ -1946,7 +1946,7 @@ def outgoing(ui, repo, dest=None, **opts See pull for valid destination format details. """ - dest, revs = cmdutil.parseurl( + dest, revs = hg.parseurl( ui.expandpath(dest or 'default-push', dest or 'default'), opts['rev']) cmdutil.setremoteconfig(ui, opts) if revs: @@ -2068,7 +2068,7 @@ def pull(ui, repo, source="default", **o Alternatively specify "ssh -C" as your ssh command in your hgrc or with the --ssh command line option. """ - source, revs = cmdutil.parseurl(ui.expandpath(source), opts['rev']) + source, revs = hg.parseurl(ui.expandpath(source), opts['rev']) cmdutil.setremoteconfig(ui, opts) other = hg.repository(ui, source) @@ -2113,7 +2113,7 @@ def push(ui, repo, dest=None, **opts): Pushing to http:// and https:// URLs is only possible, if this feature is explicitly enabled on the remote Mercurial server. """ - dest, revs = cmdutil.parseurl( + dest, revs = hg.parseurl( ui.expandpath(dest or 'default-push', dest or 'default'), opts['rev']) cmdutil.setremoteconfig(ui, opts) diff --git a/mercurial/hg.py b/mercurial/hg.py --- a/mercurial/hg.py +++ b/mercurial/hg.py @@ -10,7 +10,7 @@ from node import * from repo import * from i18n import _ import localrepo, bundlerepo, httprepo, sshrepo, statichttprepo -import errno, lock, os, shutil, util, cmdutil, extensions +import errno, lock, os, shutil, util, extensions import merge as _merge import verify as _verify @@ -18,6 +18,15 @@ def _local(path): return (os.path.isfile(util.drop_scheme('file', path)) and bundlerepo or localrepo) +def parseurl(url, revs): + '''parse url#branch, returning url, branch + revs''' + + if '#' not in url: + return url, (revs or None) + + url, rev = url.split('#', 1) + return url, revs + [rev] + schemes = { 'bundle': bundlerepo, 'file': _local, @@ -95,7 +104,7 @@ def clone(ui, source, dest=None, pull=Fa """ origsource = source - source, rev = cmdutil.parseurl(ui.expandpath(source), rev) + source, rev = parseurl(ui.expandpath(source), rev) if isinstance(source, str): src_repo = repository(ui, source)