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.
--- 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)