clonebundles: remove advertisement of feature

I screwed up.

When clone bundles is enabled on the server and a compatible client
without the feature enabled clones, the server sends down an
advertisement saying to enable the feature. The server creates the
message which is printed verbatim on the client as an "output" part.
There are 2 problems:

1) The message doesn't respect the client's localization
2) The message contains a reference to the "experimental.clonebundles"
   option.

Since clone bundles is about to be marked as non-experimental and the
goal of the advertisement was to encourage clients to test the
experimental feature, let's just remove the broken advertisement since
it no longer serves a purpose.
This commit is contained in:
Gregory Szorc 2016-01-08 10:53:07 -08:00
parent fafdf90374
commit 2c9adcd9c5
2 changed files with 0 additions and 62 deletions

View File

@ -164,15 +164,6 @@ Mercurial server when the bundle hosting service fails.
The following config options influence the behavior of the clone bundles
feature:
ui.clonebundleadvertise
Whether the server advertises the existence of the clone bundles feature
to compatible clients that aren't using it.
When this is enabled (the default), a server will send a message to
compatible clients performing a traditional clone informing them of the
available clone bundles feature. Compatible clients are those that support
bundle2 and are advertising support for the clone bundles feature.
ui.clonebundlefallback
Whether to automatically fall back to a traditional clone in case of
clone bundles failure. Defaults to false for reasons described above.
@ -190,10 +181,7 @@ experimental.clonebundleprefers
available bundle will be downloaded.
"""
from mercurial.i18n import _
from mercurial.node import nullid
from mercurial import (
exchange,
extensions,
wireproto,
)
@ -211,44 +199,5 @@ def capabilities(orig, repo, proto):
return caps
@exchange.getbundle2partsgenerator('clonebundlesadvertise', 0)
def advertiseclonebundlespart(bundler, repo, source, bundlecaps=None,
b2caps=None, heads=None, common=None,
cbattempted=None, **kwargs):
"""Inserts an output part to advertise clone bundles availability."""
# Allow server operators to disable this behavior.
# # experimental config: ui.clonebundleadvertise
if not repo.ui.configbool('ui', 'clonebundleadvertise', True):
return
# Only advertise if a manifest is present.
if not repo.opener.exists('clonebundles.manifest'):
return
# And when changegroup data is requested.
if not kwargs.get('cg', True):
return
# And when the client supports clone bundles.
if cbattempted is None:
return
# And when the client didn't attempt a clone bundle as part of this pull.
if cbattempted:
return
# And when a full clone is requested.
# Note: client should not send "cbattempted" for regular pulls. This check
# is defense in depth.
if common and common != [nullid]:
return
msg = _('this server supports the experimental "clone bundles" feature '
'that should enable faster and more reliable cloning\n'
'help test it by setting the "experimental.clonebundles" config '
'flag to "true"')
bundler.newpart('output', data=msg)
def extsetup(ui):
extensions.wrapfunction(wireproto, '_capabilities', capabilities)

View File

@ -68,17 +68,6 @@ Empty manifest file results in retrieval
adding file changes
added 2 changesets with 2 changes to 2 files
Server advertises presence of feature to client requesting full clone
$ hg --config experimental.clonebundles=false clone -U http://localhost:$HGPORT advertise-on-clone
requesting all changes
remote: this server supports the experimental "clone bundles" feature that should enable faster and more reliable cloning
remote: help test it by setting the "experimental.clonebundles" config flag to "true"
adding changesets
adding manifests
adding file changes
added 2 changesets with 2 changes to 2 files
Manifest file with invalid URL aborts
$ echo 'http://does.not.exist/bundle.hg' > server/.hg/clonebundles.manifest