323
323
repo = tree.branch.repository
324
324
revision_ids = ['a-rev', 'b-rev', 'c-rev']
325
325
revisions = repo.get_revisions(revision_ids)
326
assert len(revisions) == 3, repr(revisions)
326
self.assertEqual(len(revisions), 3)
327
327
zipped = zip(revisions, revision_ids)
328
328
self.assertEqual(len(zipped), 3)
329
329
for revision, revision_id in zipped:
336
336
rev_tree = tree.branch.repository.revision_tree(tree.last_revision())
337
337
self.assertEqual('rev_id', rev_tree.inventory.root.revision)
339
def DISABLED_DELETE_OR_FIX_BEFORE_MERGE_test_create_basis_inventory(self):
340
# Needs testing here because differences between repo and working tree
341
# basis inventory formats can lead to bugs.
342
t = self.make_branch_and_tree('.')
344
open('a', 'wb').write('a\n')
346
t.commit('a', rev_id='r1')
348
t._control_files.get_utf8('basis-inventory-cache')
350
basis_inv = t.basis_tree().inventory
351
self.assertEquals('r1', basis_inv.revision_id)
353
store_inv = b.repository.get_inventory('r1')
354
self.assertEquals(store_inv._byid, basis_inv._byid)
356
open('b', 'wb').write('b\n')
358
t.commit('b', rev_id='r2')
360
t._control_files.get_utf8('basis-inventory-cache')
362
basis_inv_txt = t.read_basis_inventory()
363
basis_inv = bzrlib.xml7.serializer_v7.read_inventory_from_string(basis_inv_txt)
364
self.assertEquals('r2', basis_inv.revision_id)
365
store_inv = b.repository.get_inventory('r2')
367
self.assertEquals(store_inv._byid, basis_inv._byid)
369
339
def test_upgrade_from_format4(self):
370
340
from bzrlib.tests.test_upgrade import _upgrade_dir_template
371
341
if self.repository_format.get_format_description() \
404
374
tree.add('foo', 'file1')
405
375
tree.commit('message', rev_id='rev_id')
406
376
repo = tree.branch.repository
378
self.addCleanup(repo.unlock)
408
380
stream = self.applyDeprecated(one_two, repo.get_data_stream,
424
396
# Get a data stream (a file-like object) for that revision
425
397
search = graph.SearchResult(set(['rev_id']), set([NULL_REVISION]), 1,
400
self.addCleanup(repo.unlock)
428
402
stream = repo.get_data_stream_for_search(search)
429
403
except NotImplementedError:
468
442
dest_repo = self.make_repository('dest')
469
443
search = dest_repo.search_missing_revision_ids(source_repo,
470
444
revision_id='rev_id')
445
source_repo.lock_read()
446
self.addCleanup(source_repo.unlock)
472
448
stream = source_repo.get_data_stream_for_search(search)
473
449
except NotImplementedError, e:
550
526
tree.add('foo', 'file1')
551
527
tree.commit('message', rev_id='rev_id')
552
528
repo = tree.branch.repository
530
self.addCleanup(repo.unlock)
554
532
# Item keys will be in this order, for maximum convenience for
555
533
# generating data to insert into knit repository:
911
889
self.addCleanup(repository.unlock)
912
890
trees1 = list(repository.revision_trees(revision_ids))
913
891
trees2 = [repository.revision_tree(t) for t in revision_ids]
914
assert len(trees1) == len(trees2)
892
self.assertEqual(len(trees1), len(trees2))
915
893
for tree1, tree2 in zip(trees1, trees2):
916
assert not tree2.changes_from(tree1).has_changed()
894
self.assertFalse(tree2.changes_from(tree1).has_changed())
918
896
def test_get_deltas_for_revisions(self):
919
897
repository = self.bzrdir.open_repository()
924
902
deltas1 = list(repository.get_deltas_for_revisions(revisions))
925
903
deltas2 = [repository.get_revision_delta(r.revision_id) for r in
927
assert deltas1 == deltas2
905
self.assertEqual(deltas1, deltas2)
929
907
def test_all_revision_ids(self):
930
908
# all_revision_ids -> all revisions