Mercurial > hg
changeset 27982:bf1d5c223ac0
schemes: add debugexpandscheme command, resolving a scheme to canonical form
author | Jason R. Coombs <jaraco@jaraco.com> |
---|---|
date | Fri, 29 Jan 2016 14:53:44 -0500 |
parents | d630eac3a5db |
children | b7af616ca675 |
files | hgext/schemes.py tests/test-schemes.t |
diffstat | 2 files changed, 27 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext/schemes.py Fri Jan 29 14:40:41 2016 -0500 +++ b/hgext/schemes.py Fri Jan 29 14:53:44 2016 -0500 @@ -41,9 +41,11 @@ """ import os, re -from mercurial import extensions, hg, templater, util, error +from mercurial import extensions, hg, templater, util, error, cmdutil from mercurial.i18n import _ +cmdtable = {} +command = cmdutil.command(cmdtable) # Note for extension authors: ONLY specify testedwith = 'internal' for # extensions which SHIP WITH MERCURIAL. Non-mainline extensions should # be specifying the version(s) of Mercurial they are tested with, or @@ -109,3 +111,12 @@ hg.schemes[scheme] = ShortRepository(url, scheme, t) extensions.wrapfunction(util, 'hasdriveletter', hasdriveletter) + +@command('debugexpandscheme', norepo=True) +def expandscheme(ui, url, **opts): + """given a repo path, provide the scheme-expanded path + """ + repo = hg._peerlookup(url) + if isinstance(repo, ShortRepository): + url = repo.resolve(url) + ui.write(url + '\n')
--- a/tests/test-schemes.t Fri Jan 29 14:40:41 2016 -0500 +++ b/tests/test-schemes.t Fri Jan 29 14:53:44 2016 -0500 @@ -52,6 +52,21 @@ no changes found [1] +check that debugexpandscheme outputs the canonical form + + $ hg debugexpandscheme bb://user/repo + https://bitbucket.org/user/repo + +expanding an unknown scheme emits the input + + $ hg debugexpandscheme foobar://this/that + foobar://this/that + +expanding a canonical URL emits the input + + $ hg debugexpandscheme https://bitbucket.org/user/repo + https://bitbucket.org/user/repo + errors $ cat errors.log