--- a/mercurial/commands.py Sat Jun 10 10:24:33 2017 -0400
+++ b/mercurial/commands.py Fri Jun 09 20:12:39 2017 -0400
@@ -9,6 +9,7 @@
import difflib
import errno
+import itertools
import os
import re
import sys
@@ -768,9 +769,22 @@
bad = True
else:
reset = True
- elif extra or good + bad + skip + reset + extend + bool(command) > 1:
+ elif extra:
raise error.Abort(_('incompatible arguments'))
+ incompatibles = {
+ '--bad': bad,
+ '--command': bool(command),
+ '--extend': extend,
+ '--good': good,
+ '--reset': reset,
+ '--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))
+
if reset:
hbisect.resetstate(repo)
return