# HG changeset patch # User Tony Tung # Date 2015-04-14 20:23:07 # Node ID ce00b2e96d09134a821d5edd9dcce698fd150398 # Parent bb2f543b48b5290c634cc26c7e61d7c3e9dd8f6e shelve: refactor allowables to specify sets of valid operations This will allow us to have --patch and --stat as standalone operations that don't require --list, as well as pairing them with --list. diff --git a/hgext/shelve.py b/hgext/shelve.py --- a/hgext/shelve.py +++ b/hgext/shelve.py @@ -691,21 +691,21 @@ def shelvecmd(ui, repo, *pats, **opts): cmdutil.checkunfinished(repo) allowables = [ - ('addremove', 'create'), # 'create' is pseudo action - ('cleanup', 'cleanup'), -# ('date', 'create'), # ignored for passing '--date "0 0"' in tests - ('delete', 'delete'), - ('edit', 'create'), - ('list', 'list'), - ('message', 'create'), - ('name', 'create'), - ('patch', 'list'), - ('stat', 'list'), + ('addremove', set(['create'])), # 'create' is pseudo action + ('cleanup', set(['cleanup'])), +# ('date', set(['create'])), # ignored for passing '--date "0 0"' in tests + ('delete', set(['delete'])), + ('edit', set(['create'])), + ('list', set(['list'])), + ('message', set(['create'])), + ('name', set(['create'])), + ('patch', set(['list'])), + ('stat', set(['list'])), ] def checkopt(opt): if opts[opt]: for i, allowable in allowables: - if opts[i] and opt != allowable: + if opts[i] and opt not in allowable: raise util.Abort(_("options '--%s' and '--%s' may not be " "used together") % (opt, i)) return True