Page MenuHomePhabricator

sidedata-exchange: rewrite sidedata on-the-fly whenever possible
Needs ReviewPublic

Authored by Alphare on Fri, Feb 19, 6:16 AM.

Details

Reviewers
indygreg
Group Reviewers
hg-reviewers
Summary

When a A exchanges with B, the difference of their supported sidedata categories
is made, and the responsibility is always with the client to generated it:

  • If A pushes to B and B requires category foo that A does not have, A will need to generate it when sending it to B.
  • If A pulls from B and A needs category foo, it will generate foo before the end of the transaction.
  • Any category that is not required is removed. If peers are not compatible, abort.

It is forbidden to rewrite sidedata for a rev that already has sidedata, since
that would introduce unreachable (garbage) data in the data file, something
we're not prepared for yet.

Diff Detail

Repository
rHG Mercurial
Branch
default
Lint
No Linters Available
Unit
No Unit Test Coverage