# HG changeset patch # User Pierre-Yves David # Date 2014-08-26 09:48:26 # Node ID 9829b79481000b3f6f1242959a15a5bf78e56023 # Parent 76677a2c1cfd32e255cf7345a085ed0898e9d61e bundle2: add a `obsmarkersversion` function to extract supported version Right next to the function that encodes the supported versions in capabilities we add a function that decodes the versions out of capabilities. This is going to be useful to know what formats can be used for exchange. diff --git a/mercurial/bundle2.py b/mercurial/bundle2.py --- a/mercurial/bundle2.py +++ b/mercurial/bundle2.py @@ -146,6 +146,7 @@ import util import struct import urllib import string +import obsolete import pushkey import changegroup, error @@ -800,6 +801,12 @@ def bundle2caps(remote): capsblob = urllib.unquote(remote.capable('bundle2-exp')) return decodecaps(capsblob) +def obsmarkersversion(caps): + """extract the list of supported obsmarkers versions from a bundle2caps dict + """ + obscaps = caps.get('b2x:obsmarkers', ()) + return [int(c[1:]) for c in obscaps if c.startswith('V')] + @parthandler('b2x:changegroup') def handlechangegroup(op, inpart): """apply a changegroup part on the repo