tests/test-duplicateoptions.py
author FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
Sun, 11 May 2014 00:49:35 +0900
changeset 21412 6f6ccb0bb6af
parent 20622 352abbb0be88
child 28739 d289b8847f23
permissions -rw-r--r--
backout: avoid redundant message examination Before this patch, "hg backout" examines "--message" and "--logfile" options explicitly. But this examination is redundant, because "commitfunc()" can receive the result of same examination by "cmdutil.logmessage()" in "cmdutil.commit()" through "message" argument. This patch avoids redundant message examination by "message" examination in "commitfunc()".

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])