diff -r 3f5d675fddf4 -r e70d6dbde713 mercurial/bundle2.py --- a/mercurial/bundle2.py Tue May 02 21:45:48 2017 +0900 +++ b/mercurial/bundle2.py Sun May 28 11:48:18 2017 -0700 @@ -1401,6 +1401,22 @@ if chunks: bundler.newpart('hgtagsfnodes', data=''.join(chunks)) +def buildobsmarkerspart(bundler, markers): + """add an obsmarker part to the bundler with + + No part is created if markers is empty. + Raises ValueError if the bundler doesn't support any known obsmarker format. + """ + if not markers: + return None + + remoteversions = obsmarkersversion(bundler.capabilities) + version = obsolete.commonversion(remoteversions) + if version is None: + raise ValueError('bundler does not support common obsmarker format') + stream = obsolete.encodemarkers(markers, True, version=version) + return bundler.newpart('obsmarkers', data=stream) + def writebundle(ui, cg, filename, bundletype, vfs=None, compression=None, compopts=None): """Write a bundle file and return its filename.