~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/blackbox/test_log.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2009-01-29 13:17:03 UTC
  • mfrom: (3972.1.2 ianc-integration)
  • Revision ID: pqm@pqm.ubuntu.com-20090129131703-lgus0aiclez3isj6
Use historical context for file logging (Ian Clatworthy)

Show diffs side-by-side

added added

removed removed

Lines of Context:
188
188
        wt = self.make_branch_and_tree('.')
189
189
        out, err = self.run_bzr('log does-not-exist', retcode=3)
190
190
        self.assertContainsRe(
191
 
            err, 'Path does not have any revision history: does-not-exist')
 
191
            err, 'Path unknown at end or start of revision range: does-not-exist')
192
192
 
193
193
    def test_log_with_tags(self):
194
194
        tree = self._prepare(format='dirstate-tags')
768
768
        tree.bzrdir.destroy_workingtree()
769
769
        self.run_bzr('log tree/file')
770
770
 
771
 
    def prepare_tree(self):
 
771
    def prepare_tree(self, complex=False):
 
772
        # The complex configuration includes deletes and renames
772
773
        tree = self.make_branch_and_tree('parent')
773
774
        self.build_tree(['parent/file1', 'parent/file2', 'parent/file3'])
774
775
        tree.add('file1')
782
783
        child_tree.commit(message='branch 1')
783
784
        tree.merge_from_branch(child_tree.branch)
784
785
        tree.commit(message='merge child branch')
 
786
        if complex:
 
787
            tree.remove('file2')
 
788
            tree.commit('remove file2')
 
789
            tree.rename_one('file3', 'file4')
 
790
            tree.commit('file3 is now called file4')
 
791
            tree.remove('file1')
 
792
            tree.commit('remove file1')
785
793
        os.chdir('parent')
786
794
 
787
795
    def test_log_file(self):
830
838
        self.assertNotContainsRe(log, 'revno: 3.1.1\n')
831
839
        self.assertNotContainsRe(log, 'revno: 4\n')
832
840
 
 
841
    def test_log_file_historical_missing(self):
 
842
        # Check logging a deleted file gives an error if the
 
843
        # file isn't found at the end or start of the revision range
 
844
        self.prepare_tree(complex=True)
 
845
        err_msg = "Path unknown at end or start of revision range: file2"
 
846
        err = self.run_bzr('log file2', retcode=3)[1]
 
847
        self.assertContainsRe(err, err_msg)
 
848
 
 
849
    def test_log_file_historical_end(self):
 
850
        # Check logging a deleted file is ok if the file existed
 
851
        # at the end the revision range
 
852
        self.prepare_tree(complex=True)
 
853
        log, err = self.run_bzr('log -r..4 file2')
 
854
        self.assertEquals('', err)
 
855
        self.assertNotContainsRe(log, 'revno: 1\n')
 
856
        self.assertContainsRe(log, 'revno: 2\n')
 
857
        self.assertNotContainsRe(log, 'revno: 3\n')
 
858
        self.assertContainsRe(log, 'revno: 3.1.1\n')
 
859
        self.assertContainsRe(log, 'revno: 4\n')
 
860
 
 
861
    def test_log_file_historical_start(self):
 
862
        # Check logging a deleted file is ok if the file existed
 
863
        # at the start of the revision range
 
864
        self.prepare_tree(complex=True)
 
865
        log, err = self.run_bzr('log file1')
 
866
        self.assertEquals('', err)
 
867
        self.assertContainsRe(log, 'revno: 1\n')
 
868
        self.assertNotContainsRe(log, 'revno: 2\n')
 
869
        self.assertNotContainsRe(log, 'revno: 3\n')
 
870
        self.assertNotContainsRe(log, 'revno: 3.1.1\n')
 
871
        self.assertNotContainsRe(log, 'revno: 4\n')
 
872
 
 
873
    def test_log_file_renamed(self):
 
874
        """File matched against revision range, not current tree."""
 
875
        self.prepare_tree(complex=True)
 
876
 
 
877
        # Check logging a renamed file gives an error by default
 
878
        err_msg = "Path unknown at end or start of revision range: file3"
 
879
        err = self.run_bzr('log file3', retcode=3)[1]
 
880
        self.assertContainsRe(err, err_msg)
 
881
 
 
882
        # Check we can see a renamed file if we give the right end revision
 
883
        log, err = self.run_bzr('log -r..4 file3')
 
884
        self.assertEquals('', err)
 
885
        self.assertNotContainsRe(log, 'revno: 1\n')
 
886
        self.assertNotContainsRe(log, 'revno: 2\n')
 
887
        self.assertContainsRe(log, 'revno: 3\n')
 
888
        self.assertNotContainsRe(log, 'revno: 3.1.1\n')
 
889
        self.assertNotContainsRe(log, 'revno: 4\n')
 
890
 
833
891
    def test_line_log_file(self):
834
892
        """The line log for a file should only list relevant mainline revs"""
835
893
        # Note: this also implicitly  covers the short logging case.