Add a states.bypass option to push without touching state.
diff --git a/hgext/states.py b/hgext/states.py --- a/hgext/states.py +++ b/hgext/states.py @@ -985,11 +985,12 @@ def reposetup(ui, repo): def push(self, remote, *args, **opts): """altered push that also update states heads on local and remote""" result = opush(remote, *args, **opts) - remoteheads = self._pullstatesheads(remote) - for st, heads in remoteheads.iteritems(): - self.setstate(st, heads) - if heads != self.stateheads(st): - self._pushstatesheads(remote, st, heads) + if not self.ui.configbool('states', 'bypass', False): + remoteheads = self._pullstatesheads(remote) + for st, heads in remoteheads.iteritems(): + self.setstate(st, heads) + if heads != self.stateheads(st): + self._pushstatesheads(remote, st, heads) return result def _pushstatesheads(self, remote, state, remoteheads):