mercurial/exchange.py
changeset 22346 a76660f85200
parent 22342 262c5cc126c1
child 22347 7198cb9b56b9
--- a/mercurial/exchange.py	Tue Aug 26 11:36:23 2014 +0200
+++ b/mercurial/exchange.py	Mon Aug 25 19:32:51 2014 +0200
@@ -37,6 +37,20 @@
     else:
         raise util.Abort(_('%s: unknown bundle version %s') % (fname, version))
 
+def buildobsmarkerspart(bundler, markers):
+    """add an obsmarker part to the bundler with <markers>
+
+    No part is created if markers is empty.
+    Raises ValueError if the bundler doesn't support any known obsmarker format.
+    """
+    if markers:
+        remoteversions = bundle2.obsmarkersversion(bundler.capabilities)
+        version = obsolete.commonversion(remoteversions)
+        if version is None:
+            raise ValueError('bundler do not support common obsmarker format')
+        stream = obsolete.encodemarkers(markers, True, version=version)
+        return bundler.newpart('B2X:OBSMARKERS', data=stream)
+    return None
 
 class pushoperation(object):
     """A object that represent a single push operation