@@ -74,6 +74,12 @@ transfer.advertiseSID::
Boolean. When true, client and server processes will advertise their
unique session IDs to their remote counterpart. Defaults to false.
+transfer.bundleURI::
+ When set to `false` ignores any server advertisement of
+ `bundle-uri` and proceed with a "normal" clone/fetch even if
+ using bundles to bootstap is possible. Defaults to `true`,
+ i.e. bundle-uri is tried whenever a server offers it.
+
transfer.injectBundleURI::
Allows for the injection of `bundle-uri` lines into the
protocol v2 transport dialog (see `protocol.version` in
@@ -1503,6 +1503,7 @@ int transport_fetch_refs(struct transport *transport, struct ref *refs)
struct config_cb {
struct transport *transport;
+ int disabled;
int configured;
int ret;
};
@@ -1513,7 +1514,15 @@ static int bundle_uri_config(const char *var, const char *value, void *data)
struct transport *transport = cb->transport;
struct string_list *uri = &transport->bundle_uri;
- if (!strcmp(var, "transfer.injectbundleuri")) {
+ if (!strcmp(var, "transfer.bundleuri")) {
+ cb->disabled = !git_config_bool(var, value);
+ if (cb->disabled)
+ bundle_uri_string_list_clear(uri);
+ return 0;
+ }
+
+ if (!cb->disabled &&
+ !strcmp(var, "transfer.injectbundleuri")) {
cb->configured = 1;
if (!value)
cb->ret = error(_("bad (empty) transfer.injectBundleURI"));
@@ -1538,6 +1547,10 @@ int transport_get_remote_bundle_uri(struct transport *transport, int quiet)
git_config(bundle_uri_config, &cb);
+ /* Don't use bundle-uri at all */
+ if (cb.disabled)
+ return 0;
+
/* Our own config can fake it up with transport.injectBundleURI */
if (cb.configured)
return cb.ret;
The yet-to-be introduced client support for bundle-uri will always fall back on a full clone, but we'd still like to be able to ignore a server's bundle-uri advertisement entirely. This is useful for testing, and if a server is pointing to bad bundles, they take a while to time out etc. Since we might see the config in any order we need to clear out any accumulated bundle_uri list when we see transfer.bundleURI=false setting, and not add any more things to the list. Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> --- Documentation/config/transfer.txt | 6 ++++++ transport.c | 15 ++++++++++++++- 2 files changed, 20 insertions(+), 1 deletion(-)