Gregory Szorc <gregory.szorc@gmail.com> [Wed, 14 Oct 2015 11:05:53 -0700] rev 26691
clonebundles: advertise clone bundles feature to clients
Server operators that have enabled clone bundles probably want clients
to use it. This patch introduces a feature that will insert a bundle2
"output" part that advertises the existence of the clone bundles
feature to clients that aren't using it.
The server uses the "cbattempted" argument to "getbundle" to determine
whether a client supports clone bundles and to avoid sending the message
to clients that failed the clone bundle for whatever reason.
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 14 Oct 2015 10:36:20 -0700] rev 26690
exchange: advertise if a clone bundle was attempted
The client now sends a "cbattempted" boolean flag to the "getbundle"
wire protocol command to tell the server whether a clone bundle was
attempted.
The presence of this flag will enable the server to conditionally emit a
bundle2 "output" part advertising the availability of clone bundles to
compatible clients that don't have it enabled.
Gregory Szorc <gregory.szorc@gmail.com> [Tue, 13 Oct 2015 14:55:02 -0700] rev 26689
exchange: record that we attempted to fetch a clone bundle
This is needed so a subsequent patch can conditionally add a bundle2
part to the "getbundle" wire protocol command depending on whether a
clone bundle was attempted.
Gregory Szorc <gregory.szorc@gmail.com> [Tue, 13 Oct 2015 12:41:32 -0700] rev 26688
exchange: provide hint on how to disable clone bundles
If a clone bundle persistently fails to apply, users need a way to
disable it so they have a hope of the clone working. Change the hint for
the abort scenario to advertise the config option to disable clone
bundles.
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 14 Oct 2015 10:03:26 -0700] rev 26687
exchange: document filterclonebundleentries
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 14 Oct 2015 10:58:35 -0700] rev 26686
wireproto: properly parse false boolean args (BC)
The client represents boolean arguments as '0' and '1'.
bool('0') == bool('1') == True, so a simple bool(val) isn't sufficient
for converting the argument back to a bool type.
Currently, "obsmarkers" is the only boolean argument to getbundle.
I /think/ the only place where we currently set the "obsmarkers"
argument is during bundle2 pulls. As a result of this bug, the server
/might/ be sending obsolete markers bundle2 part(s) to clients that
don't request them. That is why I marked this BC.
Surprisingly there was no test fall out from this change. I suspect a
lapse in test coverage.