The index format has a documented format and latter changes will start
to enforce the field types. The bundlerepo uses full nodes for the
linkrev field when it should be using revision numbers. Use the link
mapping to resolve them, except in the special case of self-references.
Those are actually indications of a missing linkrev.
Details
Details
- Reviewers
martinvonz - Group Reviewers
hg-reviewers - Commits
- rHG88d5abec8f61: bundlerepo: don't insert index tuples with full nodes as linkrev
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
bundlerepo: don't insert index tuples with full nodes as linkrev
Can you update the commit message to explain why? It might also be good to have a comment in the code (it's not clear to me why it's sometimes fine to have linkrev pointing to nullrev).
Comment Actions
The index has a documented format, but it wasn't enforced so far. With the pending child review, that would change. The case of cs==node is seen when we send full changesets in the bundle. In that case we used to leak the full node id into the index.