mercurial/obsolete.py
changeset 19053 f74f2a4e3327
parent 18984 efef056b1ae9
child 19054 d5f968f7716f
--- a/mercurial/obsolete.py	Thu Apr 18 12:55:58 2013 -0700
+++ b/mercurial/obsolete.py	Wed Apr 17 11:18:36 2013 +0200
@@ -370,6 +370,22 @@
     finally:
         lock.release()
 
+def syncpush(repo, remote):
+    """utility function to push bookmark to a remote
+
+    Exist mostly to allow overridding for experimentation purpose"""
+    if (_enabled and repo.obsstore and
+        'obsolete' in remote.listkeys('namespaces')):
+        rslts = []
+        remotedata = repo.listkeys('obsolete')
+        for key in sorted(remotedata, reverse=True):
+            # reverse sort to ensure we end with dump0
+            data = remotedata[key]
+            rslts.append(remote.pushkey('obsolete', key, '', data))
+        if [r for r in rslts if not r]:
+            msg = _('failed to push some obsolete markers!\n')
+            repo.ui.warn(msg)
+
 def allmarkers(repo):
     """all obsolete markers known in a repository"""
     for markerdata in repo.obsstore: