1480
1480
self.assertEqual('a@cset-0-3', revision_id)
1481
1481
self.assertEqual('inventory', repo_kind)
1482
1482
self.assertEqual({'parents': ['a@cset-0-2a', 'a@cset-0-2b'],
1483
'sha1': 'c08b0f8cc256107f0229c98931d1d69c0e843196',
1483
'sha1': '09c53b0c4de0895e11a2aacc34fef60a6e70865c',
1484
1484
'storage_kind': 'mpdiff',
1486
1486
# We should have an mpdiff that takes some lines from both parents.
1487
1487
self.assertEqualDiff(
1489
'<inventory file_id="root-id" format="5"'
1490
' revision_id="a@cset-0-3">\n'
1489
'<inventory format="10" revision_id="a@cset-0-3">\n'
1493
'c 1 2 2 2\n', bytes)
1492
'c 1 3 3 2\n', bytes)
1495
1494
def test_single_inv_no_parents_as_xml(self):
1496
1495
self.make_merged_branch()
1505
1504
self.assertEqual('a@cset-0-1', revision_id)
1506
1505
self.assertEqual('inventory', repo_kind)
1507
1506
self.assertEqual({'parents': [],
1508
'sha1': 'f6ed523eebc7d813d1adbdaf3754c00e1de49446',
1507
'sha1': 'a13f42b142d544aac9b085c42595d304150e31a2',
1509
1508
'storage_kind': 'mpdiff',
1511
1510
# We should have an mpdiff that takes some lines from both parents.
1512
1511
self.assertEqualDiff(
1514
'<inventory file_id="root-id" format="5"'
1515
' revision_id="a@cset-0-1">\n'
1513
'<inventory format="10" revision_id="a@cset-0-1">\n'
1514
'<directory file_id="root-id" name=""'
1515
' revision="a@cset-0-1" />\n'
1516
1516
'<file file_id="file-id" name="file" parent_id="root-id"'
1517
1517
' revision="a@cset-0-1"'
1518
1518
' text_sha1="09c2f8647e14e49e922b955c194102070597c2d1"'
1533
1533
metadata_2a = records[0][1]
1534
1534
self.assertEqual({'parents': ['a@cset-0-1'],
1535
'sha1': 'a699b8d8fe87361ad758e99655afab44aca287b2',
1535
'sha1': '1e105886d62d510763e22885eec733b66f5f09bf',
1536
1536
'storage_kind': 'mpdiff',
1537
1537
}, metadata_2a)
1538
1538
metadata_2b = records[1][1]
1539
1539
self.assertEqual({'parents': ['a@cset-0-1'],
1540
'sha1': 'c2bab5eda6a31f206042f0fcacc175b76c65a376',
1540
'sha1': 'f03f12574bdb5ed2204c28636c98a8547544ccd8',
1541
1541
'storage_kind': 'mpdiff',
1542
1542
}, metadata_2b)
1543
1543
metadata_3 = records[2][1]
1544
1544
self.assertEqual({'parents': ['a@cset-0-2a', 'a@cset-0-2b'],
1545
'sha1': 'c08b0f8cc256107f0229c98931d1d69c0e843196',
1545
'sha1': '09c53b0c4de0895e11a2aacc34fef60a6e70865c',
1546
1546
'storage_kind': 'mpdiff',
1548
1548
bytes_2a = records[0][0]
1549
1549
self.assertEqualDiff(
1551
'<inventory file_id="root-id" format="5"'
1552
' revision_id="a@cset-0-2a">\n'
1551
'<inventory format="10" revision_id="a@cset-0-2a">\n'
1553
1555
'<file file_id="file-id" name="file" parent_id="root-id"'
1554
1556
' revision="a@cset-0-2a"'
1555
1557
' text_sha1="50f545ff40e57b6924b1f3174b267ffc4576e9a9"'
1556
1558
' text_size="12" />\n'
1558
'c 0 2 2 1\n', bytes_2a)
1560
'c 0 3 3 1\n', bytes_2a)
1559
1561
bytes_2b = records[1][0]
1560
1562
self.assertEqualDiff(
1562
'<inventory file_id="root-id" format="5"'
1563
' revision_id="a@cset-0-2b">\n'
1564
'<inventory format="10" revision_id="a@cset-0-2b">\n'
1567
1568
'<file file_id="file2-id" name="other-file" parent_id="root-id"'
1568
1569
' revision="a@cset-0-2b"'
1569
1570
' text_sha1="b46c0c8ea1e5ef8e46fc8894bfd4752a88ec939e"'
1570
1571
' text_size="14" />\n'
1572
'c 0 2 3 1\n', bytes_2b)
1573
'c 0 3 4 1\n', bytes_2b)
1573
1574
bytes_3 = records[2][0]
1574
1575
self.assertEqualDiff(
1576
'<inventory file_id="root-id" format="5"'
1577
' revision_id="a@cset-0-3">\n'
1577
'<inventory format="10" revision_id="a@cset-0-3">\n'
1580
'c 1 2 2 2\n', bytes_3)
1580
'c 1 3 3 2\n', bytes_3)
1582
def test_creating_bundle_preserves_chk_pages(self):
1583
self.make_merged_branch()
1584
target = self.b1.bzrdir.sprout('target',
1585
revision_id='a@cset-0-2a').open_branch()
1586
bundle_txt, rev_ids = self.create_bundle_text('a@cset-0-2a',
1588
self.assertEqual(['a@cset-0-2b', 'a@cset-0-3'], rev_ids)
1589
bundle = read_bundle(bundle_txt)
1591
self.addCleanup(target.unlock)
1592
install_bundle(target.repository, bundle)
1593
inv1 = self.b1.repository.inventories.get_record_stream([
1594
('a@cset-0-3',)], 'unordered',
1595
True).next().get_bytes_as('fulltext')
1596
inv2 = target.repository.inventories.get_record_stream([
1597
('a@cset-0-3',)], 'unordered',
1598
True).next().get_bytes_as('fulltext')
1599
self.assertEqualDiff(inv1, inv2)
1583
1602
class MungedBundleTester(object):