mercurial/commands.py
changeset 32766 fbe9c4dcc8a0
parent 32754 723de0ad3d8b
child 32823 cb48dfd9672d
equal deleted inserted replaced
32765:041d976b662a 32766:fbe9c4dcc8a0
     7 
     7 
     8 from __future__ import absolute_import
     8 from __future__ import absolute_import
     9 
     9 
    10 import difflib
    10 import difflib
    11 import errno
    11 import errno
       
    12 import itertools
    12 import os
    13 import os
    13 import re
    14 import re
    14 import sys
    15 import sys
    15 
    16 
    16 from .i18n import _
    17 from .i18n import _
   766             good = True
   767             good = True
   767         elif cmd == "bad":
   768         elif cmd == "bad":
   768             bad = True
   769             bad = True
   769         else:
   770         else:
   770             reset = True
   771             reset = True
   771     elif extra or good + bad + skip + reset + extend + bool(command) > 1:
   772     elif extra:
   772         raise error.Abort(_('incompatible arguments'))
   773         raise error.Abort(_('incompatible arguments'))
       
   774 
       
   775     incompatibles = {
       
   776         '--bad': bad,
       
   777         '--command': bool(command),
       
   778         '--extend': extend,
       
   779         '--good': good,
       
   780         '--reset': reset,
       
   781         '--skip': skip,
       
   782     }
       
   783 
       
   784     for left, right in itertools.combinations(sorted(incompatibles), 2):
       
   785         if incompatibles[left] and incompatibles[right]:
       
   786             raise error.Abort(_('%s and %s are incompatible') % (left, right))
   773 
   787 
   774     if reset:
   788     if reset:
   775         hbisect.resetstate(repo)
   789         hbisect.resetstate(repo)
   776         return
   790         return
   777 
   791