view tests/test-duplicateoptions.py @ 24078:e44586d9c207

webcommands: move help import into help command handler A subsequent patch will introduce an import cycle between mercurial.help and mercurial.hgweb.webcommands. Break the cycle by moving the import of mercurial.help into the web command that actually needs it.
author Gregory Szorc <gregory.szorc@gmail.com>
date Fri, 06 Feb 2015 22:47:48 -0800
parents 352abbb0be88
children d289b8847f23
line wrap: on
line source

import os
from mercurial import ui, commands, extensions

ignore = set(['highlight', 'win32text', 'factotum'])

if os.name != 'nt':
    ignore.add('win32mbcs')

disabled = [ext for ext in extensions.disabled().keys() if ext not in ignore]

hgrc = open(os.environ["HGRCPATH"], 'w')
hgrc.write('[extensions]\n')

for ext in disabled:
    hgrc.write(ext + '=\n')

hgrc.close()

u = ui.ui()
extensions.loadall(u)

globalshort = set()
globallong = set()
for option in commands.globalopts:
    option[0] and globalshort.add(option[0])
    option[1] and globallong.add(option[1])

for cmd, entry in commands.table.iteritems():
    seenshort = globalshort.copy()
    seenlong = globallong.copy()
    for option in entry[1]:
        if (option[0] and option[0] in seenshort) or \
           (option[1] and option[1] in seenlong):
            print "command '" + cmd + "' has duplicate option " + str(option)
        seenshort.add(option[0])
        seenlong.add(option[1])