Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/commands.py @ 32786:fbe9c4dcc8a0
bisect: improve option validation message
author | Brandon McCaig <bamccaig@gmail.com> |
---|---|
date | Fri, 09 Jun 2017 20:12:39 -0400 |
parents | 723de0ad3d8b |
children | cb48dfd9672d |
comparison
equal
deleted
inserted
replaced
32785:041d976b662a | 32786: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 |