comparison hgext/schemes.py @ 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 27a9032374a7
comparison
equal deleted inserted replaced
27981:d630eac3a5db 27982:bf1d5c223ac0
39 You can override a predefined scheme by defining a new scheme with the 39 You can override a predefined scheme by defining a new scheme with the
40 same name. 40 same name.
41 """ 41 """
42 42
43 import os, re 43 import os, re
44 from mercurial import extensions, hg, templater, util, error 44 from mercurial import extensions, hg, templater, util, error, cmdutil
45 from mercurial.i18n import _ 45 from mercurial.i18n import _
46 46
47 cmdtable = {}
48 command = cmdutil.command(cmdtable)
47 # Note for extension authors: ONLY specify testedwith = 'internal' for 49 # Note for extension authors: ONLY specify testedwith = 'internal' for
48 # extensions which SHIP WITH MERCURIAL. Non-mainline extensions should 50 # extensions which SHIP WITH MERCURIAL. Non-mainline extensions should
49 # be specifying the version(s) of Mercurial they are tested with, or 51 # be specifying the version(s) of Mercurial they are tested with, or
50 # leave the attribute unspecified. 52 # leave the attribute unspecified.
51 testedwith = 'internal' 53 testedwith = 'internal'
107 raise error.Abort(_('custom scheme %s:// conflicts with drive ' 109 raise error.Abort(_('custom scheme %s:// conflicts with drive '
108 'letter %s:\\\n') % (scheme, scheme.upper())) 110 'letter %s:\\\n') % (scheme, scheme.upper()))
109 hg.schemes[scheme] = ShortRepository(url, scheme, t) 111 hg.schemes[scheme] = ShortRepository(url, scheme, t)
110 112
111 extensions.wrapfunction(util, 'hasdriveletter', hasdriveletter) 113 extensions.wrapfunction(util, 'hasdriveletter', hasdriveletter)
114
115 @command('debugexpandscheme', norepo=True)
116 def expandscheme(ui, url, **opts):
117 """given a repo path, provide the scheme-expanded path
118 """
119 repo = hg._peerlookup(url)
120 if isinstance(repo, ShortRepository):
121 url = repo.resolve(url)
122 ui.write(url + '\n')