Patch: Add known read-only commands used by hg-evolve

Manuel Jacob me at manueljacob.de
Mon Mar 24 10:24:39 UTC 2025


Hi,

On 18/02/2025 18.26, Mads Kiilerich wrote:
> I am not using evolve. To avoid landing it just based on blind trust, 
> can you say more about how it has been tested and how others can test it?
> 
> What commands / operations will exercise these 3 wire commands (and fail 
> without the patch)? That will provide some confidence in correctness and 
> completeness.

In a test, I found the following:

Without the patch, `hg pull` (from a test repository on Kallithea 
containing obsmarkers and topics; I didn’t test without these) requires 
authentication, that is not normally required, in these cases:

- with the evolve extension enabled on both server and client because 
the client sends the evoext_obshashrange_v1 command
- with the topic extension enabled on both server and client (hg-evolve 
== 11.1.6) because the client sends the tns_heads command
- with the topic extension enabled on both server and client (hg-evolve 
== 11.0.2) because the client sends the _exttopics_heads command

With the patch, `hg pull` doesn’t require authentication in these cases.

> Since these 3 wire commands are read only, I assume that all topic 
> related writes come as meta data when pushing commits?

The topic name is part of the changeset. I do not know if further topic 
metadata is transferred when pushing them.

The evoext_obshashrange_v1 is used for obsmarker discovery, not 
obsmarker exchange.

> This context might be too much to include in the commit message and too 
> tricky to set up in an automated test, but a discussion here on mail 
> would give confidence.
> 
> /Mads


More information about the kallithea-general mailing list