Show More
@@ -9,6 +9,7 b' from __future__ import absolute_import' | |||
|
9 | 9 | |
|
10 | 10 | import difflib |
|
11 | 11 | import errno |
|
12 | import itertools | |
|
12 | 13 | import os |
|
13 | 14 | import re |
|
14 | 15 | import sys |
@@ -768,9 +769,22 b' def bisect(ui, repo, rev=None, extra=Non' | |||
|
768 | 769 | bad = True |
|
769 | 770 | else: |
|
770 | 771 | reset = True |
|
771 | elif extra or good + bad + skip + reset + extend + bool(command) > 1: | |
|
772 | elif extra: | |
|
772 | 773 | raise error.Abort(_('incompatible arguments')) |
|
773 | 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)) | |
|
787 | ||
|
774 | 788 | if reset: |
|
775 | 789 | hbisect.resetstate(repo) |
|
776 | 790 | return |
@@ -611,3 +611,51 b' Changeset in the bad:good range is obsol' | |||
|
611 | 611 | date: Thu Jan 01 00:00:26 1970 +0000 |
|
612 | 612 | summary: msg 26 |
|
613 | 613 | |
|
614 | Test the validation message when exclusive options are used: | |
|
615 | ||
|
616 | $ hg bisect -r | |
|
617 | $ hg bisect -b -c false | |
|
618 | abort: --bad and --command are incompatible | |
|
619 | [255] | |
|
620 | $ hg bisect -b -e | |
|
621 | abort: --bad and --extend are incompatible | |
|
622 | [255] | |
|
623 | $ hg bisect -b -g | |
|
624 | abort: --bad and --good are incompatible | |
|
625 | [255] | |
|
626 | $ hg bisect -b -r | |
|
627 | abort: --bad and --reset are incompatible | |
|
628 | [255] | |
|
629 | $ hg bisect -b -s | |
|
630 | abort: --bad and --skip are incompatible | |
|
631 | [255] | |
|
632 | $ hg bisect -c false -e | |
|
633 | abort: --command and --extend are incompatible | |
|
634 | [255] | |
|
635 | $ hg bisect -c false -g | |
|
636 | abort: --command and --good are incompatible | |
|
637 | [255] | |
|
638 | $ hg bisect -c false -r | |
|
639 | abort: --command and --reset are incompatible | |
|
640 | [255] | |
|
641 | $ hg bisect -c false -s | |
|
642 | abort: --command and --skip are incompatible | |
|
643 | [255] | |
|
644 | $ hg bisect -e -g | |
|
645 | abort: --extend and --good are incompatible | |
|
646 | [255] | |
|
647 | $ hg bisect -e -r | |
|
648 | abort: --extend and --reset are incompatible | |
|
649 | [255] | |
|
650 | $ hg bisect -e -s | |
|
651 | abort: --extend and --skip are incompatible | |
|
652 | [255] | |
|
653 | $ hg bisect -g -r | |
|
654 | abort: --good and --reset are incompatible | |
|
655 | [255] | |
|
656 | $ hg bisect -g -s | |
|
657 | abort: --good and --skip are incompatible | |
|
658 | [255] | |
|
659 | $ hg bisect -r -s | |
|
660 | abort: --reset and --skip are incompatible | |
|
661 | [255] |
General Comments 0
You need to be logged in to leave comments.
Login now