# HG changeset patch # User Brandon McCaig # Date 1497419027 14400 # Node ID cb48dfd9672ddb5cd6c816be28aee93ea1afb237 # Parent e65ff29dbeb02ce08e4a64f381ccd37949354dcf bisect: simpler approach for option validation message Yuya Nishihara gave this suggestion on the mailing list after the previous patch was queued, and honestly this seems much simpler and looks more efficient. diff -r e65ff29dbeb0 -r cb48dfd9672d mercurial/commands.py --- a/mercurial/commands.py Mon Jun 12 16:35:57 2017 -0700 +++ b/mercurial/commands.py Wed Jun 14 01:43:47 2017 -0400 @@ -9,7 +9,6 @@ import difflib import errno -import itertools import os import re import sys @@ -781,9 +780,11 @@ '--skip': skip, } - for left, right in itertools.combinations(sorted(incompatibles), 2): - if incompatibles[left] and incompatibles[right]: - raise error.Abort(_('%s and %s are incompatible') % (left, right)) + enabled = [x for x in incompatibles if incompatibles[x]] + + if len(enabled) > 1: + raise error.Abort(_('%s and %s are incompatible') % + tuple(sorted(enabled)[0:2])) if reset: hbisect.resetstate(repo)