hgext/clonebundles.py
changeset 27886 0288e63ea3be
parent 27738 a0e783d26e81
child 28095 7fa139eaebb4
equal deleted inserted replaced
27885:2370c66110cb 27886:0288e63ea3be
    68 Typically, a newer server can serve data that is compatible with older clients.
    68 Typically, a newer server can serve data that is compatible with older clients.
    69 However, *streaming clone bundles* don't have this guarantee. **Server
    69 However, *streaming clone bundles* don't have this guarantee. **Server
    70 operators need to be aware that newer versions of Mercurial may produce
    70 operators need to be aware that newer versions of Mercurial may produce
    71 streaming clone bundles incompatible with older Mercurial versions.**
    71 streaming clone bundles incompatible with older Mercurial versions.**
    72 
    72 
    73 The list of requirements printed by :hg:`debugcreatestreamclonebundle` should
       
    74 be specified in the ``requirements`` parameter of the *bundle specification
       
    75 string* for the ``BUNDLESPEC`` manifest property described below. e.g.
       
    76 ``BUNDLESPEC=none-packed1;requirements%3Drevlogv1``.
       
    77 
       
    78 A server operator is responsible for creating a ``.hg/clonebundles.manifest``
    73 A server operator is responsible for creating a ``.hg/clonebundles.manifest``
    79 file containing the list of available bundle files suitable for seeding
    74 file containing the list of available bundle files suitable for seeding
    80 clones. If this file does not exist, the repository will not advertise the
    75 clones. If this file does not exist, the repository will not advertise the
    81 existence of clone bundles when clients connect.
    76 existence of clone bundles when clients connect.
    82 
    77 
   106 
   101 
   107    The values are parsed in strict mode, which means they must be of the
   102    The values are parsed in strict mode, which means they must be of the
   108    "<compression>-<type>" form. See
   103    "<compression>-<type>" form. See
   109    mercurial.exchange.parsebundlespec() for more details.
   104    mercurial.exchange.parsebundlespec() for more details.
   110 
   105 
       
   106    :hg:`debugbundle --spec` can be used to print the bundle specification
       
   107    string for a bundle file. The output of this command can be used verbatim
       
   108    for the value of ``BUNDLESPEC`` (it is already escaped).
       
   109 
   111    Clients will automatically filter out specifications that are unknown or
   110    Clients will automatically filter out specifications that are unknown or
   112    unsupported so they won't attempt to download something that likely won't
   111    unsupported so they won't attempt to download something that likely won't
   113    apply.
   112    apply.
   114 
   113 
   115    The actual value doesn't impact client behavior beyond filtering:
   114    The actual value doesn't impact client behavior beyond filtering:
   116    clients will still sniff the bundle type from the header of downloaded
   115    clients will still sniff the bundle type from the header of downloaded
   117    files.
   116    files.
   118 
   117 
   119    **Use of this key is highly recommended**, as it allows clients to
   118    **Use of this key is highly recommended**, as it allows clients to
   120    easily skip unsupported bundles.
   119    easily skip unsupported bundles. If this key is not defined, an old
       
   120    client may attempt to apply a bundle that it is incapable of reading.
   121 
   121 
   122 REQUIRESNI
   122 REQUIRESNI
   123    Whether Server Name Indication (SNI) is required to connect to the URL.
   123    Whether Server Name Indication (SNI) is required to connect to the URL.
   124    SNI allows servers to use multiple certificates on the same IP. It is
   124    SNI allows servers to use multiple certificates on the same IP. It is
   125    somewhat common in CDNs and other hosting providers. Older Python
   125    somewhat common in CDNs and other hosting providers. Older Python