23
23
class TestRevisionNamespaces(TestCaseInTempDir):
24
24
def test_revision_namespaces(self):
25
"""Functional tests for hashcache"""
25
"""Test revision specifiers.
27
These identify revisions by date, etc."""
26
28
from bzrlib.errors import NoSuchRevision
27
29
from bzrlib.branch import Branch
30
from bzrlib.revisionspec import RevisionSpec
29
b = Branch('.', init=True)
32
b = Branch.initialize('.')
31
34
b.commit('Commit one', rev_id='a@r-0-1')
32
35
b.commit('Commit two', rev_id='a@r-0-2')
33
36
b.commit('Commit three', rev_id='a@r-0-3')
35
self.assertEquals(b.get_revision_info(None), (0, None))
36
self.assertEquals(b.get_revision_info(1), (1, 'a@r-0-1'))
37
self.assertEquals(b.get_revision_info('revno:1'), (1, 'a@r-0-1'))
38
self.assertEquals(b.get_revision_info('revid:a@r-0-1'), (1, 'a@r-0-1'))
39
self.assertRaises(NoSuchRevision, b.get_revision_info, 'revid:a@r-0-0')
40
self.assertRaises(TypeError, b.get_revision_info, object)
42
self.assertEquals(b.get_revision_info('date:-tomorrow'), (3, 'a@r-0-3'))
43
self.assertEquals(b.get_revision_info('date:+today'), (1, 'a@r-0-1'))
45
self.assertEquals(b.get_revision_info('last:1'), (3, 'a@r-0-3'))
46
self.assertEquals(b.get_revision_info('-1'), (3, 'a@r-0-3'))
38
self.assertEquals(RevisionSpec(None).in_history(b), (0, None))
39
self.assertEquals(RevisionSpec(1).in_history(b), (1, 'a@r-0-1'))
40
self.assertEquals(RevisionSpec('revno:1').in_history(b),
42
self.assertEquals(RevisionSpec('revid:a@r-0-1').in_history(b),
44
self.assertRaises(NoSuchRevision,
45
RevisionSpec('revid:a@r-0-0').in_history, b)
46
self.assertRaises(TypeError, RevisionSpec, object)
48
self.assertEquals(RevisionSpec('date:-tomorrow').in_history(b),
50
self.assertEquals(RevisionSpec('date:+today').in_history(b),
53
self.assertEquals(RevisionSpec('last:1').in_history(b),
55
self.assertEquals(RevisionSpec('-1').in_history(b), (3, 'a@r-0-3'))
56
# self.assertEquals(b.get_revision_info('last:1'), (3, 'a@r-0-3'))
57
# self.assertEquals(b.get_revision_info('-1'), (3, 'a@r-0-3'))
59
self.assertEquals(RevisionSpec('ancestor:.').in_history(b).rev_id,
48
62
os.mkdir('newbranch')
49
b2 = Branch('newbranch', init=True)
50
self.assertEquals(b2.lookup_revision('revid:a@r-0-1'), 'a@r-0-1')
63
b2 = Branch.initialize('newbranch')
64
self.assertRaises(NoCommits, RevisionSpec('ancestor:.').in_history, b2)
52
self.assertRaises(NoCommits, b2.lookup_revision, 'ancestor:.')
53
self.assertEquals(b.lookup_revision('ancestor:.'), 'a@r-0-3')
55
67
b3 = copy_branch(b, 'copy')
56
68
b3.commit('Commit four', rev_id='b@r-0-4')
57
self.assertEquals(b3.lookup_revision('ancestor:.'), 'a@r-0-3')
69
self.assertEquals(RevisionSpec('ancestor:.').in_history(b3).rev_id,
58
71
merge(['copy', -1], [None, None])
59
72
b.commit('Commit five', rev_id='a@r-0-4')
60
self.assertEquals(b.lookup_revision('ancestor:copy'), 'b@r-0-4')
61
self.assertEquals(b3.lookup_revision('ancestor:.'), 'b@r-0-4')
73
self.assertEquals(RevisionSpec('ancestor:copy').in_history(b).rev_id,
75
self.assertEquals(RevisionSpec('ancestor:.').in_history(b3).rev_id,