Question
Enabling generaldelta in Mercurial 2.0 Repositories: Compatibility Concerns
Tasadduq BurneyownerOwner · Founder
28K reputation · 20 Dec 2021, 21:24 UTC
29.4K views0
Goal
Determine whether to activate the generaldelta storage mode for new Mercurial 2.0+ repositories and how that choice affects client compatibility.
Current Constraints
- Revisions are stored as deltas against any previous revision, reducing repository size.
- Only Mercurial 1.9 and newer understand the revlog version 1 required by generaldelta.
- Older clients (≤1.8) abort with
unknown revision log versionwhen accessing a generaldelta repository. - Switching the format after repository creation requires a full store rewrite.
Unresolved Decision
The default value for the generaldelta setting in the repository’s .hg/hgrc remains undecided in the 5.x series. Some distributions enable it by default, while others preserve the legacy delta format for backward compatibility.
Questions
- Should generaldelta be the default storage mode for all new Mercurial 5.x repositories?
- What migration strategy is required to convert an existing legacy repository to generaldelta without data loss?
- How can administrators guarantee that all collaborators’ clients remain compatible when generaldelta is enabled?