Mercurial > evolve
diff hgext/evolve.py @ 1226:901d2f4b21a9
config: allow disabling commands
Now that upstream Mercurial has multiple options for obsolete configuration, we
can allow enabling and disabling of evolve commands.
author | Durham Goode <durham@fb.com> |
---|---|
date | Wed, 15 Oct 2014 15:41:26 -0700 |
parents | 524dbc8ffeac |
children | 3d9c5f5df6d8 |
line wrap: on
line diff
--- a/hgext/evolve.py Sat Mar 07 02:32:43 2015 -0800 +++ b/hgext/evolve.py Wed Oct 15 15:41:26 2014 -0700 @@ -44,6 +44,8 @@ except (ImportError, AttributeError): gboptslist = gboptsmap = None +# Flags for enabling optional parts of evolve +commandopt = 'commands' from mercurial import base85 from mercurial import bookmarks @@ -353,6 +355,17 @@ evolveopts = ['all'] ui.setconfig('experimental', 'evolution', evolveopts) +@eh.uisetup +def _configurecmdoptions(ui): + # Unregister evolve commands if the command capability is not specified. + # + # This must be in the same function as the option configuration above to + # guarantee it happens after the above configuration, but before the + # extsetup functions. + evolveopts = ui.configlist('experimental', 'evolution') + if evolveopts and (commandopt not in evolveopts and + 'all' not in evolveopts): + cmdtable.clear() ##################################################################### ### experimental behavior ### @@ -959,7 +972,11 @@ This function is loosely based on the extensions.wrapcommand function. ''' - aliases, entry = cmdutil.findcmd(newalias, cmdtable) + try: + aliases, entry = cmdutil.findcmd(newalias, cmdtable) + except error.UnknownCommand: + # Commands may be disabled + return for alias, e in cmdtable.iteritems(): if e is entry: break @@ -2335,8 +2352,12 @@ @eh.extsetup def oldevolveextsetup(ui): for cmd in ['kill', 'uncommit', 'touch', 'fold']: - entry = extensions.wrapcommand(cmdtable, cmd, - warnobserrors) + try: + entry = extensions.wrapcommand(cmdtable, cmd, + warnobserrors) + except error.UnknownCommand: + # Commands may be disabled + continue entry = cmdutil.findcmd('commit', commands.table)[1] entry[1].append(('o', 'obsolete', [],