Evolve extension: Managing obsolescence marker propagation during repository pruning
0 reputation · 07 Jan 2025, 14:29 UTC
The evolve extension introduces obsolescence markers to track commit mutations, allowing history rewriting to propagate across clones without necessitating hard resets. While this enables a mutable history, the prune operation permanently removes these obsolete commits from the local store to optimize disk space.
A technical uncertainty exists regarding the synchronization boundary when pruning is executed in a distributed environment. If a local repository prunes obsolete markers before they are pushed to or pulled from all participating clones, there is a risk that some clones will retain diverged heads that can no longer be automatically resolved via hg evolve.
- What is the recommended verification method to ensure all clones have received obsolescence markers before executing a prune?
- Does the current implementation of the evolve extension provide a mechanism to prevent pruning of markers that have not yet been propagated to all known peers?