43
43
from bzrlib.merge import Merge3Merger
44
44
from bzrlib.repofmt import knitrepo
45
from bzrlib.osutils import sha_file
45
from bzrlib.osutils import sha_file, sha_string
46
46
from bzrlib.tests import (
169
169
self.assertEqual(btree.path2id("grandparent/parent"), "b")
170
170
self.assertEqual(btree.path2id("grandparent/parent/file"), "c")
172
assert btree.path2id("grandparent2") is None
173
assert btree.path2id("grandparent2/parent") is None
174
assert btree.path2id("grandparent2/parent/file") is None
172
self.assertTrue(btree.path2id("grandparent2") is None)
173
self.assertTrue(btree.path2id("grandparent2/parent") is None)
174
self.assertTrue(btree.path2id("grandparent2/parent/file") is None)
176
176
btree.note_rename("grandparent", "grandparent2")
177
assert btree.old_path("grandparent") is None
178
assert btree.old_path("grandparent/parent") is None
179
assert btree.old_path("grandparent/parent/file") is None
177
self.assertTrue(btree.old_path("grandparent") is None)
178
self.assertTrue(btree.old_path("grandparent/parent") is None)
179
self.assertTrue(btree.old_path("grandparent/parent/file") is None)
181
181
self.assertEqual(btree.id2path("a"), "grandparent2")
182
182
self.assertEqual(btree.id2path("b"), "grandparent2/parent")
186
186
self.assertEqual(btree.path2id("grandparent2/parent"), "b")
187
187
self.assertEqual(btree.path2id("grandparent2/parent/file"), "c")
189
assert btree.path2id("grandparent") is None
190
assert btree.path2id("grandparent/parent") is None
191
assert btree.path2id("grandparent/parent/file") is None
189
self.assertTrue(btree.path2id("grandparent") is None)
190
self.assertTrue(btree.path2id("grandparent/parent") is None)
191
self.assertTrue(btree.path2id("grandparent/parent/file") is None)
193
193
btree.note_rename("grandparent/parent", "grandparent2/parent2")
194
194
self.assertEqual(btree.id2path("a"), "grandparent2")
199
199
self.assertEqual(btree.path2id("grandparent2/parent2"), "b")
200
200
self.assertEqual(btree.path2id("grandparent2/parent2/file"), "c")
202
assert btree.path2id("grandparent2/parent") is None
203
assert btree.path2id("grandparent2/parent/file") is None
202
self.assertTrue(btree.path2id("grandparent2/parent") is None)
203
self.assertTrue(btree.path2id("grandparent2/parent/file") is None)
205
205
btree.note_rename("grandparent/parent/file",
206
206
"grandparent2/parent2/file2")
212
212
self.assertEqual(btree.path2id("grandparent2/parent2"), "b")
213
213
self.assertEqual(btree.path2id("grandparent2/parent2/file2"), "c")
215
assert btree.path2id("grandparent2/parent2/file") is None
215
self.assertTrue(btree.path2id("grandparent2/parent2/file") is None)
217
217
def test_moves(self):
218
218
"""Ensure that file moves have the proper effect on children"""
221
221
"grandparent/alt_parent/file")
222
222
self.assertEqual(btree.id2path("c"), "grandparent/alt_parent/file")
223
223
self.assertEqual(btree.path2id("grandparent/alt_parent/file"), "c")
224
assert btree.path2id("grandparent/parent/file") is None
224
self.assertTrue(btree.path2id("grandparent/parent/file") is None)
226
226
def unified_diff(self, old, new):
233
233
btree = self.make_tree_1()[0]
234
234
btree.note_rename("grandparent/parent/file",
235
235
"grandparent/alt_parent/file")
236
assert btree.id2path("e") is None
237
assert btree.path2id("grandparent/parent/file") is None
236
self.assertTrue(btree.id2path("e") is None)
237
self.assertTrue(btree.path2id("grandparent/parent/file") is None)
238
238
btree.note_id("e", "grandparent/parent/file")
298
298
btree = self.make_tree_1()[0]
299
299
self.assertEqual(btree.get_file("c").read(), "Hello\n")
300
300
btree.note_deletion("grandparent/parent/file")
301
assert btree.id2path("c") is None
302
assert btree.path2id("grandparent/parent/file") is None
301
self.assertTrue(btree.id2path("c") is None)
302
self.assertTrue(btree.path2id("grandparent/parent/file") is None)
304
304
def sorted_ids(self, tree):
464
464
ancestors = write_bundle(self.b1.repository, rev_id, 'null:', s,
465
465
format=self.format)
467
assert isinstance(s.getvalue(), str), (
468
"Bundle isn't a bytestring:\n %s..." % repr(s.getvalue())[:40])
467
self.assertIsInstance(s.getvalue(), str)
469
468
install_bundle(tree.branch.repository, read_bundle(s))
470
469
for ancestor in ancestors:
471
470
old = self.b1.repository.revision_tree(ancestor)
1015
1014
self.assertNotContainsRe(inv_text, 'format="5"')
1016
1015
self.assertContainsRe(inv_text, 'format="7"')
1017
def make_repo_with_installed_revisions(self):
1018
tree = self.make_simple_tree('knit')
1019
tree.commit('hello', rev_id='rev1')
1020
tree.commit('hello', rev_id='rev2')
1021
bundle = read_bundle(self.create_bundle_text('null:', 'rev2')[0])
1022
repo = self.make_repository('repo', format='dirstate-with-subtree')
1023
bundle.install_revisions(repo)
1018
1026
def test_across_models(self):
1019
tree = self.make_simple_tree('knit')
1020
tree.commit('hello', rev_id='rev1')
1021
tree.commit('hello', rev_id='rev2')
1022
bundle = read_bundle(self.create_bundle_text('null:', 'rev2')[0])
1023
repo = self.make_repository('repo', format='dirstate-with-subtree')
1024
bundle.install_revisions(repo)
1027
repo = self.make_repo_with_installed_revisions()
1025
1028
inv = repo.get_inventory('rev2')
1026
1029
self.assertEqual('rev2', inv.root.revision)
1027
1030
root_vf = repo.weave_store.get_weave(inv.root.file_id,
1028
1031
repo.get_transaction())
1029
1032
self.assertEqual(root_vf.versions(), ['rev1', 'rev2'])
1034
def test_inv_hash_across_serializers(self):
1035
repo = self.make_repo_with_installed_revisions()
1036
recorded_inv_sha1 = repo.get_inventory_sha1('rev2')
1037
xml = repo.get_inventory_xml('rev2')
1038
self.assertEqual(sha_string(xml), recorded_inv_sha1)
1031
1040
def test_across_models_incompatible(self):
1032
1041
tree = self.make_simple_tree('dirstate-with-subtree')
1033
1042
tree.commit('hello', rev_id='rev1')