This page is primarily intended for developers of Mercurial.

Extensible Discovery

Status: Project

Main proponents: Pierre-YvesDavid

/!\ This is a speculative project and does not represent any firm decisions on future behavior.

The idea is to build a new discovery protocol (both in strategy and in wire protocol). Something able to handle more than just changeset discovery but to cope with the various new data type we have introduced in the recent years.

1. Goal

We currently have various different data that need discovery and data exchange.

They are all exchanged through there own channel opening the way to multiple data complication and race condition. We would like to have a unified way to do discovery and add new kind of data to it. Eventually we would be able to gather all discovery data through the same process.

2. Requirement

There is no real proposal yet, but lets gather some of the stuff we *need*.

(there is probably a couple of the above that are unclear or false)

3. Pre-existing protocol

4. some random idea

We could exchange more data per round-trip and client could define how much data he want to received from the remote.

There is various data that could be combined:

The current discovery prototol "per node" could maybe be upgrade to "per range" to accommodate obsmarker exchange plans and probably other data type.

5. Roadmap

*Nothing to see here yet*

6. See Also

CategoryDeveloper CategoryNewFeatures

ExtensibleDiscoveryPlan (last edited 2016-02-21 17:48:12 by Pierre-YvesDavid)