site

(Pierre-Yves David)
2011-11-28: Add a states.bypass option to push without touching state.

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