wireproto: avoid exposing pushkey abort for server without evolution
Client with evolution enabled will query the 'obsolete' pushley namespace if no
other way to request obsmarkers have been found. They will do this
unconditionally as long as no other obsolescence related capabilities have been
advertised by the server.
The call is "harmless" since the namespace will be empty if obsmarkers exchange
is disabled. However, since we forbid the use of pushkey for obsmarkers this
lead to unexpected crash report for up to date client talking to a server with
the evolve extensions but exchange disabled.
We fix the issue by serving the expected empty namespace in this case. We keep
forbidding the query if obsmarker exchange is enabled since new client should
have picked another more effective was to fetch the data first.
We also add some tests for this logic.
Source: mercurial-evolve
Section: vcs
Priority: optional
Maintainer: Logilab <contact@logilab.fr>
Uploaders:
Julien Cristau <julien.cristau@logilab.fr>,
Pierre-Yves David <pierre-yves.david@logilab.fr>,
Standards-Version: 3.9.3
Build-Depends:
mercurial (>= 4.1),
python,
debhelper (>= 8),
python-sphinx (>= 1.0.8),
imagemagick,
librsvg2-bin,
wget,
Python-Version: >= 2.6
Homepage: https://www.mercurial-scm.org/doc/evolution/
Package: mercurial-evolve
Architecture: all
Depends:
${python:Depends},
${misc:Depends},
mercurial (>= 4.1),
Description: evolve extension for Mercurial
This package provides the experimental "evolve" extension for the Mercurial
DVCS.
.
This extension provides several commands to mutate history and deal with issues
it may raise.