/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_commit.py

Merge bzr.dev

Show diffs side-by-side

added added

removed removed

Lines of Context:
223
223
        wt.move(['hello'], 'a')
224
224
        r2 = 'test@rev-2'
225
225
        wt.commit('two', rev_id=r2, allow_pointless=False)
226
 
        self.check_inventory_shape(wt.read_working_inventory(),
227
 
                                   ['a', 'a/hello', 'b'])
 
226
        wt.lock_read()
 
227
        try:
 
228
            self.check_inventory_shape(wt.read_working_inventory(),
 
229
                                       ['a', 'a/hello', 'b'])
 
230
        finally:
 
231
            wt.unlock()
228
232
 
229
233
        wt.move(['b'], 'a')
230
234
        r3 = 'test@rev-3'
231
235
        wt.commit('three', rev_id=r3, allow_pointless=False)
232
 
        self.check_inventory_shape(wt.read_working_inventory(),
233
 
                                   ['a', 'a/hello', 'a/b'])
234
 
        self.check_inventory_shape(b.repository.get_revision_inventory(r3),
235
 
                                   ['a', 'a/hello', 'a/b'])
 
236
        wt.lock_read()
 
237
        try:
 
238
            self.check_inventory_shape(wt.read_working_inventory(),
 
239
                                       ['a', 'a/hello', 'a/b'])
 
240
            self.check_inventory_shape(b.repository.get_revision_inventory(r3),
 
241
                                       ['a', 'a/hello', 'a/b'])
 
242
        finally:
 
243
            wt.unlock()
236
244
 
237
245
        wt.move(['a/hello'], 'a/b')
238
246
        r4 = 'test@rev-4'
239
247
        wt.commit('four', rev_id=r4, allow_pointless=False)
240
 
        self.check_inventory_shape(wt.read_working_inventory(),
241
 
                                   ['a', 'a/b/hello', 'a/b'])
 
248
        wt.lock_read()
 
249
        try:
 
250
            self.check_inventory_shape(wt.read_working_inventory(),
 
251
                                       ['a', 'a/b/hello', 'a/b'])
 
252
        finally:
 
253
            wt.unlock()
242
254
 
243
255
        inv = b.repository.get_revision_inventory(r4)
244
256
        eq(inv['hello-id'].revision, r4)
245
257
        eq(inv['a-id'].revision, r1)
246
258
        eq(inv['b-id'].revision, r3)
247
 
        
 
259
 
248
260
    def test_removed_commit(self):
249
261
        """Commit with a removed file"""
250
262
        wt = self.make_branch_and_tree('.')
529
541
        tree.commit('added a, b')
530
542
        tree.remove(['a', 'b'])
531
543
        tree.commit('removed a', specific_files='a')
532
 
        basis = tree.basis_tree().inventory
533
 
        self.assertIs(None, basis.path2id('a'))
534
 
        self.assertFalse(basis.path2id('b') is None)
 
544
        basis = tree.basis_tree()
 
545
        tree.lock_read()
 
546
        try:
 
547
            self.assertIs(None, basis.path2id('a'))
 
548
            self.assertFalse(basis.path2id('b') is None)
 
549
        finally:
 
550
            tree.unlock()
535
551
 
536
552
    def test_commit_saves_1ms_timestamp(self):
537
553
        """Passing in a timestamp is saved with 1ms resolution"""
556
572
        timestamp_1ms = round(timestamp, 3)
557
573
        self.assertEqual(timestamp_1ms, timestamp)
558
574
 
 
575
    def assertBasisTreeKind(self, kind, tree, file_id):
 
576
        basis = tree.basis_tree()
 
577
        basis.lock_read()
 
578
        try:
 
579
            self.assertEqual(kind, basis.kind(file_id))
 
580
        finally:
 
581
            basis.unlock()
 
582
 
559
583
    def test_commit_kind_changes(self):
560
584
        if not osutils.has_symlinks():
561
585
            raise tests.TestSkipped('Test requires symlink support')
563
587
        os.symlink('target', 'name')
564
588
        tree.add('name', 'a-file-id')
565
589
        tree.commit('Added a symlink')
566
 
        self.assertEqual('symlink', tree.basis_tree().kind('a-file-id'))
 
590
        self.assertBasisTreeKind('symlink', tree, 'a-file-id')
567
591
 
568
592
        os.unlink('name')
569
593
        self.build_tree(['name'])
570
594
        tree.commit('Changed symlink to file')
571
 
        self.assertEqual('file', tree.basis_tree().kind('a-file-id'))
 
595
        self.assertBasisTreeKind('file', tree, 'a-file-id')
572
596
 
573
597
        os.unlink('name')
574
598
        os.symlink('target', 'name')
575
599
        tree.commit('file to symlink')
576
 
        self.assertEqual('symlink', tree.basis_tree().kind('a-file-id'))
 
600
        self.assertBasisTreeKind('symlink', tree, 'a-file-id')
577
601
 
578
602
        os.unlink('name')
579
603
        os.mkdir('name')
580
604
        tree.commit('symlink to directory')
581
 
        self.assertEqual('directory', tree.basis_tree().kind('a-file-id'))
 
605
        self.assertBasisTreeKind('directory', tree, 'a-file-id')
582
606
 
583
607
        os.rmdir('name')
584
608
        os.symlink('target', 'name')
585
609
        tree.commit('directory to symlink')
586
 
        self.assertEqual('symlink', tree.basis_tree().kind('a-file-id'))
 
610
        self.assertBasisTreeKind('symlink', tree, 'a-file-id')
587
611
 
588
612
        # prepare for directory <-> file tests
589
613
        os.unlink('name')
590
614
        os.mkdir('name')
591
615
        tree.commit('symlink to directory')
592
 
        self.assertEqual('directory', tree.basis_tree().kind('a-file-id'))
 
616
        self.assertBasisTreeKind('directory', tree, 'a-file-id')
593
617
 
594
618
        os.rmdir('name')
595
619
        self.build_tree(['name'])
596
620
        tree.commit('Changed directory to file')
597
 
        self.assertEqual('file', tree.basis_tree().kind('a-file-id'))
 
621
        self.assertBasisTreeKind('file', tree, 'a-file-id')
598
622
 
599
623
        os.unlink('name')
600
624
        os.mkdir('name')
601
625
        tree.commit('file to directory')
602
 
        self.assertEqual('directory', tree.basis_tree().kind('a-file-id'))
 
626
        self.assertBasisTreeKind('directory', tree, 'a-file-id')
603
627
 
604
628
    def test_commit_unversioned_specified(self):
605
629
        """Commit should raise if specified files isn't in basis or worktree"""