102
102
tree1 = b.repository.revision_tree(rev1)
103
103
tree1.lock_read()
104
text = tree1.get_file_text(file_id)
104
text = tree1.get_file_text('hello')
106
106
self.assertEqual('hello world', text)
108
108
tree2 = b.repository.revision_tree(rev2)
109
109
tree2.lock_read()
110
text = tree2.get_file_text(file_id)
110
text = tree2.get_file_text('hello')
112
112
self.assertEqual('version 2', text)
243
243
tree2.lock_read()
244
244
self.addCleanup(tree2.unlock)
245
245
self.assertTrue(tree2.has_filename('hello'))
246
self.assertEqual(tree2.get_file_text('hello-id'), 'hello')
247
self.assertEqual(tree2.get_file_text('buongia-id'), 'new text')
246
self.assertEqual(tree2.get_file_text('hello'), 'hello')
247
self.assertEqual(tree2.get_file_text('buongia'), 'new text')
249
249
tree3 = b.repository.revision_tree('test@rev-3')
250
250
tree3.lock_read()
251
251
self.addCleanup(tree3.unlock)
252
252
self.assertFalse(tree3.has_filename('hello'))
253
self.assertEqual(tree3.get_file_text('buongia-id'), 'new text')
253
self.assertEqual(tree3.get_file_text('buongia'), 'new text')
255
255
def test_commit_rename(self):
256
256
"""Test commit of a revision where a file is renamed."""
268
268
tree1.lock_read()
269
269
self.addCleanup(tree1.unlock)
270
270
eq(tree1.id2path('hello-id'), 'hello')
271
eq(tree1.get_file_text('hello-id'), 'contents of hello\n')
271
eq(tree1.get_file_text('hello'), 'contents of hello\n')
272
272
self.assertFalse(tree1.has_filename('fruity'))
273
273
self.check_tree_shape(tree1, ['hello'])
274
eq(tree1.get_file_revision('hello-id'), 'test@rev-1')
274
eq(tree1.get_file_revision('hello'), 'test@rev-1')
276
276
tree2 = b.repository.revision_tree('test@rev-2')
277
277
tree2.lock_read()
278
278
self.addCleanup(tree2.unlock)
279
279
eq(tree2.id2path('hello-id'), 'fruity')
280
eq(tree2.get_file_text('hello-id'), 'contents of hello\n')
280
eq(tree2.get_file_text('fruity'), 'contents of hello\n')
281
281
self.check_tree_shape(tree2, ['fruity'])
282
eq(tree2.get_file_revision('hello-id'), 'test@rev-2')
282
eq(tree2.get_file_revision('fruity'), 'test@rev-2')
284
284
def test_reused_rev_id(self):
285
285
"""Test that a revision id cannot be reused in a branch"""
646
646
timestamp_1ms = round(timestamp, 3)
647
647
self.assertEqual(timestamp_1ms, timestamp)
649
def assertBasisTreeKind(self, kind, tree, file_id):
649
def assertBasisTreeKind(self, kind, tree, path):
650
650
basis = tree.basis_tree()
651
651
basis.lock_read()
653
self.assertEqual(kind, basis.kind(file_id))
653
self.assertEqual(kind, basis.kind(path))
660
660
os.symlink('target', 'name')
661
661
tree.add('name', 'a-file-id')
662
662
tree.commit('Added a symlink')
663
self.assertBasisTreeKind('symlink', tree, 'a-file-id')
663
self.assertBasisTreeKind('symlink', tree, 'name')
665
665
os.unlink('name')
666
666
self.build_tree(['name'])
667
667
tree.commit('Changed symlink to file')
668
self.assertBasisTreeKind('file', tree, 'a-file-id')
668
self.assertBasisTreeKind('file', tree, 'name')
670
670
os.unlink('name')
671
671
os.symlink('target', 'name')
672
672
tree.commit('file to symlink')
673
self.assertBasisTreeKind('symlink', tree, 'a-file-id')
673
self.assertBasisTreeKind('symlink', tree, 'name')
675
675
os.unlink('name')
677
677
tree.commit('symlink to directory')
678
self.assertBasisTreeKind('directory', tree, 'a-file-id')
678
self.assertBasisTreeKind('directory', tree, 'name')
681
681
os.symlink('target', 'name')
682
682
tree.commit('directory to symlink')
683
self.assertBasisTreeKind('symlink', tree, 'a-file-id')
683
self.assertBasisTreeKind('symlink', tree, 'name')
685
685
# prepare for directory <-> file tests
686
686
os.unlink('name')
688
688
tree.commit('symlink to directory')
689
self.assertBasisTreeKind('directory', tree, 'a-file-id')
689
self.assertBasisTreeKind('directory', tree, 'name')
692
692
self.build_tree(['name'])
693
693
tree.commit('Changed directory to file')
694
self.assertBasisTreeKind('file', tree, 'a-file-id')
694
self.assertBasisTreeKind('file', tree, 'name')
696
696
os.unlink('name')
698
698
tree.commit('file to directory')
699
self.assertBasisTreeKind('directory', tree, 'a-file-id')
699
self.assertBasisTreeKind('directory', tree, 'name')
701
701
def test_commit_unversioned_specified(self):
702
702
"""Commit should raise if specified files isn't in basis or worktree"""