My repo got corrupted yesterday by something that ended up writing the
null revision to the revlog (nullid hash, not nullrev index, of
course). We use many extensions internally (narrowhg, remotefilelog,
evolve, internal extensions) and treemanifests are on. The null
revision was written to the changelog, the root manifest log, and one
subdirectory manifest log. I have no idea exactly why the null
revision was written, but it seems cheap enough to check that we
should fail instead of corrupting the repo.
Details
Details
- Reviewers
indygreg quark - Group Reviewers
hg-reviewers - Commits
- rHG9180f8f593f3: revlog: abort on attempt to write null revision
Diff Detail
Diff Detail
- Repository
- rHG Mercurial
- Lint
Automatic diff as part of commit; lint not applicable. - Unit
Automatic diff as part of commit; unit tests not applicable.
Event Timeline
Comment Actions
Actually, I think it's better to do this in _addrevision, which could cover more code paths in theory.
Comment Actions
Makes sense. It's slightly different since it only applies to the changelog (but there are also several other magic hashes for manifests), so I'll do it a separate patch to avoid holding this patch hostage.
Good point. I'll move it there.