equal
deleted
inserted
replaced
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 |