Mercurial > public > mercurial-scm > hg
diff tests/test-copies-in-changeset.t @ 46718:ba8e508a8e69
sidedata-exchange: rewrite sidedata on-the-fly whenever possible
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.
Differential Revision: https://phab.mercurial-scm.org/D10032
author | Rapha?l Gom?s <rgomes@octobus.net> |
---|---|
date | Fri, 19 Feb 2021 11:24:50 +0100 |
parents | 3d740058b467 |
children | 84a93fa7ecfd |
line wrap: on
line diff
--- a/tests/test-copies-in-changeset.t Mon Feb 15 11:08:28 2021 +0100 +++ b/tests/test-copies-in-changeset.t Fri Feb 19 11:24:50 2021 +0100 @@ -271,13 +271,12 @@ $ hg ci --amend -m 'copy a to j, v2' saved backup bundle to $TESTTMP/repo/.hg/strip-backup/*-*-amend.hg (glob) $ hg debugsidedata -c -v -- -1 - 1 sidedata entries (missing-correct-output !) - entry-0014 size 24 (missing-correct-output !) - '\x00\x00\x00\x02\x00\x00\x00\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x02\x00\x00\x00\x00aj' (missing-correct-output !) + 1 sidedata entries + entry-0014 size 24 + '\x00\x00\x00\x02\x00\x00\x00\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x02\x00\x00\x00\x00aj' #endif $ hg showcopies --config experimental.copies.read-from=filelog-only - a -> j (sidedata missing-correct-output !) - a -> j (no-sidedata !) + a -> j The entries should be written to extras even if they're empty (so the client won't have to fall back to reading from filelogs) $ echo x >> j @@ -355,8 +354,7 @@ saved backup bundle to $TESTTMP/rebase-rename/.hg/strip-backup/*-*-rebase.hg (glob) $ hg st --change . --copies A b - a (sidedata missing-correct-output !) - a (no-sidedata !) + a R a $ cd ..