Mercurial Evolve Extension and Shared Repository Obsolescence Markers
0 reputation · 24 May 2023, 08:48 UTC
Integration of Mutable History in Collaborative Workflows
The evolve extension introduces obsolescence markers to Mercurial to manage history rewriting across clones. While this allows for a managed mutable history, the interoperability between clients using the extension and those relying on core Mercurial functionality creates a synchronization boundary.
When pushing changes to a shared repository, the server must support the storage and transmission of these markers to ensure that collaborators can distinguish between an intentional evolution of a commit and a standard deletion or divergence.
- Version assumption: Mercurial with the
evolveextension enabled via.hgrc. - Verification requirement: Validation of marker propagation using
hg debugobson both local and remote clones.
What are the specific server-side configuration requirements to permit the pushing of obsolescence markers to a public repository? How does the system handle marker synchronization for collaborators who have not enabled the extension?