Note:

This page is primarily intended for developers of Mercurial.

History Editing Pre-Checking consolidation

Status: InProgress

Main proponents: Pierre-YvesDavid, PulkitGoyal, SushilKanchi, GregorySzorc

A way to reduce the odd for users to be exposed to evolution instability (both for local and distributed workflow).

1. Goal

Changeset Evolution can automatically detect and solves a lot of the issues that can arise from history rewriting. However, in terms of user experience it is better to prevent them to arise in the first place as much as possible. We already have some some "pre-checking" in place, it should be generalized to make sure that every history rewriting operation uses it and that it cover all the issues we can cover.

This plan page aims at:

2. Details

2.1. checks

Things that needs to be checked:

2.2. API

We also need to make sure any local markers creation goes through this. We could use the follow API for this purporse (Actual name may varies):

with history_rewriting(repo) as evolution_tracker:
    evolution_tracker.pre_check(some, arguments)
    work(); work(); work();
    evolution_tracker.record_evolution(markers, to, be, created)

The evolution_tracker tracker become the only way to create local markers, and the markers creation will checks that an appropriate "pre_check" call have been made for the rewritten changesets.

2.3. Ownership

The idea is to help preventing content-divergence creation and large impact error in general by detecting when a user is about to rewrites changeset that are not is own.

There are two dimension to consider:

what changeset should we "protect" ?

how should we act on ?

3. Roadmap

4. See Also


CategoryDeveloper CategoryNewFeatures CategoryEvolution

CEDPrecheckPlan (last edited 2019-11-12 12:33:36 by DenisLaxalde)