255
255
tree.add(['foo'], [b'Nasty-IdC:'], ['file'])
256
256
tree.put_file_bytes_non_atomic('foo', b'')
257
257
tree.commit('1st post', rev_id=b'foo')
258
self.assertHasKnit(t, 'knits/e8/%254easty-%2549d%2543%253a',
259
'\nfoo fulltext 0 81 :')
258
self.assertHasKnit(t, b'knits/e8/%254easty-%2549d%2543%253a',
259
b'\nfoo fulltext 0 81 :')
261
def assertHasKnit(self, t, knit_name, extra_content=''):
261
def assertHasKnit(self, t, knit_name, extra_content=b''):
262
262
"""Assert that knit_name exists on t."""
263
self.assertEqualDiff('# bzr knit index 8\n' + extra_content,
263
self.assertEqualDiff(b'# bzr knit index 8\n' + extra_content,
264
264
t.get(knit_name + '.kndx').read())
266
266
def check_knits(self, t):
267
267
"""check knit content for a repository."""
268
self.assertHasKnit(t, 'inventory')
269
self.assertHasKnit(t, 'revisions')
270
self.assertHasKnit(t, 'signatures')
268
self.assertHasKnit(t, b'inventory')
269
self.assertHasKnit(t, b'revisions')
270
self.assertHasKnit(t, b'signatures')
272
272
def test_shared_disk_layout(self):
273
273
control = bzrdir.BzrDirMetaFormat1().initialize(self.get_url())
300
300
# empty weaves directory
301
301
# a 'shared-storage' marker file.
302
302
t = control.get_repository_transport(None)
303
self.assertEqualDiff('Bazaar-NG Knit Repository Format 1',
303
self.assertEqualDiff(b'Bazaar-NG Knit Repository Format 1',
304
304
t.get('format').read())
305
305
# XXX: no locks left when unlocked at the moment
306
306
# self.assertEqualDiff('', t.get('lock').read())
307
self.assertEqualDiff('', t.get('shared-storage').read())
308
self.assertEqualDiff('', t.get('no-working-trees').read())
307
self.assertEqualDiff(b'', t.get('shared-storage').read())
308
self.assertEqualDiff(b'', t.get('no-working-trees').read())
309
309
repo.set_make_working_trees(True)
310
310
self.assertFalse(t.has('no-working-trees'))
311
311
self.assertTrue(S_ISDIR(t.stat('knits').st_mode))
579
579
builder.start_series()
580
580
builder.build_snapshot(None, [
581
581
('add', ('', b'root-id', 'directory', '')),
582
('add', ('file', b'file-id', 'file', 'content\n'))],
582
('add', ('file', b'file-id', 'file', b'content\n'))],
583
583
revision_id=b'1')
584
584
builder.build_snapshot([b'1'], [
585
585
('modify', ('file', b'content-2\n'))],
603
603
builder.start_series()
604
604
builder.build_snapshot(None, [
605
605
('add', ('', b'root-id', 'directory', '')),
606
('add', ('file', b'file-id', 'file', 'content\n'))],
606
('add', ('file', b'file-id', 'file', b'content\n'))],
607
607
revision_id=b'1')
608
608
builder.build_snapshot([b'1'], [
609
609
('modify', ('file', b'content-2\n'))],
699
699
for j in 'abcdefghijklmnopqrstuvwxyz123456789':
701
701
fid = fname.encode('utf-8') + b'-id'
702
content = 'content for %s\n' % (fname,)
702
content = b'content for %s\n' % (fname,)
703
703
entries.append(('add', (fname, fid, 'file', content)))
704
704
source_builder.start_series()
705
705
source_builder.build_snapshot(None, entries, revision_id=b'rev-1')
1012
1012
def test__clear_obsolete_packs(self):
1013
1013
packs = self.get_packs()
1014
1014
obsolete_pack_trans = packs.transport.clone('obsolete_packs')
1015
obsolete_pack_trans.put_bytes('a-pack.pack', 'content\n')
1016
obsolete_pack_trans.put_bytes('a-pack.rix', 'content\n')
1017
obsolete_pack_trans.put_bytes('a-pack.iix', 'content\n')
1018
obsolete_pack_trans.put_bytes('another-pack.pack', 'foo\n')
1019
obsolete_pack_trans.put_bytes('not-a-pack.rix', 'foo\n')
1015
obsolete_pack_trans.put_bytes('a-pack.pack', b'content\n')
1016
obsolete_pack_trans.put_bytes('a-pack.rix', b'content\n')
1017
obsolete_pack_trans.put_bytes('a-pack.iix', b'content\n')
1018
obsolete_pack_trans.put_bytes('another-pack.pack', b'foo\n')
1019
obsolete_pack_trans.put_bytes('not-a-pack.rix', b'foo\n')
1020
1020
res = packs._clear_obsolete_packs()
1021
1021
self.assertEqual(['a-pack', 'another-pack'], sorted(res))
1022
1022
self.assertEqual([], obsolete_pack_trans.list_dir('.'))
1024
1024
def test__clear_obsolete_packs_preserve(self):
1025
1025
packs = self.get_packs()
1026
1026
obsolete_pack_trans = packs.transport.clone('obsolete_packs')
1027
obsolete_pack_trans.put_bytes('a-pack.pack', 'content\n')
1028
obsolete_pack_trans.put_bytes('a-pack.rix', 'content\n')
1029
obsolete_pack_trans.put_bytes('a-pack.iix', 'content\n')
1030
obsolete_pack_trans.put_bytes('another-pack.pack', 'foo\n')
1031
obsolete_pack_trans.put_bytes('not-a-pack.rix', 'foo\n')
1027
obsolete_pack_trans.put_bytes('a-pack.pack', b'content\n')
1028
obsolete_pack_trans.put_bytes('a-pack.rix', b'content\n')
1029
obsolete_pack_trans.put_bytes('a-pack.iix', b'content\n')
1030
obsolete_pack_trans.put_bytes('another-pack.pack', b'foo\n')
1031
obsolete_pack_trans.put_bytes('not-a-pack.rix', b'foo\n')
1032
1032
res = packs._clear_obsolete_packs(preserve={'a-pack'})
1033
1033
self.assertEqual(['a-pack', 'another-pack'], sorted(res))
1034
1034
self.assertEqual(['a-pack.iix', 'a-pack.pack', 'a-pack.rix'],
1287
1287
r.start_write_group()
1288
1288
self.addCleanup(r.abort_write_group)
1289
1289
r.texts.insert_record_stream([versionedfile.FulltextContentFactory(
1290
('text', 'rev'), (), None, 'content\n')])
1290
(b'text', b'rev'), (), None, b'content\n')])
1291
1291
new_pack = packs._new_pack
1292
1292
self.assertTrue(new_pack.data_inserted())
1293
1293
new_pack.finish()