[states] do not activate deactivated state with ``hg states --off <state>`` previously: $ hg init alpha $ cd alpha $ hg states --off draft $ hg states published draft now: $ hg init alpha $ cd alpha $ hg states --off draft $ hg states published
diff --git a/hgext/states.py b/hgext/states.py
--- a/hgext/states.py
+++ b/hgext/states.py
@@ -517,8 +517,13 @@ def cmdstates(ui, repo, *states, **opt):
else:
ui.write_err(_('no state named %s\n') % state_name)
return 1
- if off and st in repo._enabledstates:
- repo._enabledstates.remove(st)
+ if off:
+ if st in repo._enabledstates:
+ repo._enabledstates.remove(st)
+ else:
+ ui.write_err(_('state %s already deactivated\n') %
+ state_name)
+
else:
repo._enabledstates.add(st)
repo._writeenabledstates()
diff --git a/tests/test-states.t b/tests/test-states.t
--- a/tests/test-states.t
+++ b/tests/test-states.t
@@ -35,3 +35,9 @@
$ hg -R ../other states
published
+do nothing if state already deactivated
+ $ hg states --off draft
+ state draft already deactivated
+ $ hg states
+ published
+ ready