tests/test-revlog-ancestry.py.out
author Martin von Zweigbergk <martinvonz@google.com>
Tue, 19 Jan 2016 17:44:25 -0800
branchstable
changeset 27920 da5f23362517
parent 18081 f88c60e740a1
child 39473 b6db2e80a9ce
permissions -rw-r--r--
changegroup: cg3 has two empty groups *after* manifests changegroup.getchunks() determines the end of the stream by looking for an empty chunk group (two consecutive empty chunks). It ignores empty groups in the first two groups. Changegroup 3 introduced an empty chunk between the manifests and the files, which confuses getchunks(). Since it comes after the first two, getchunks() will stop there. Fix by rewriting getchunks so it first counts two groups (empty or not) and then keeps antostarts counting empty groups. With this counting, changegroup 1 and 2 have exactly one empty group after the first two groups, while changegroup 3 has two (one for directories and one for files). It's a little hard to test this at this point, but I have verified that this patch fixes narrowhg (which was broken before this patch). Also, future patches will fix "hg strip" with treemanifests, and once that's done, getchunks() will be tested through tests of "hg strip".

Ancestors of 5
4 2 0 
Ancestors of 6 and 5
3 4 2 1 0 
Ancestors of 5 and 4
4 2 0 
Ancestors of 7, stop at 6
6 
Ancestors of 7, including revs
7 6 5 3 4 2 1 0 
Ancestors of 7, 5 and 3, including revs
7 5 3 6 4 2 1 0 

Descendants of 5
7 8 
Descendants of 5 and 3
6 7 8 
Descendants of 5 and 4
5 7 8