21
21
from bzrlib.merge import merge
23
23
class TestRevisionNamespaces(TestCaseInTempDir):
24
25
def test_revision_namespaces(self):
25
"""Functional tests for hashcache"""
26
"""Test revision specifiers.
28
These identify revisions by date, etc."""
26
29
from bzrlib.errors import NoSuchRevision
27
30
from bzrlib.branch import Branch
31
from bzrlib.revisionspec import RevisionSpec
29
b = Branch('.', init=True)
33
b = Branch.initialize('.')
31
35
b.commit('Commit one', rev_id='a@r-0-1')
32
36
b.commit('Commit two', rev_id='a@r-0-2')
33
37
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'))
39
self.assertEquals(RevisionSpec(None).in_history(b), (0, None))
40
self.assertEquals(RevisionSpec(1).in_history(b), (1, 'a@r-0-1'))
41
self.assertEquals(RevisionSpec('revno:1').in_history(b),
43
self.assertEquals(RevisionSpec('revid:a@r-0-1').in_history(b),
45
self.assertRaises(NoSuchRevision,
46
RevisionSpec('revid:a@r-0-0').in_history, b)
47
self.assertRaises(TypeError, RevisionSpec, object)
49
self.assertEquals(RevisionSpec('date:-tomorrow').in_history(b),
51
self.assertEquals(RevisionSpec('date:+today').in_history(b),
54
self.assertEquals(RevisionSpec('last:1').in_history(b),
56
self.assertEquals(RevisionSpec('-1').in_history(b), (3, 'a@r-0-3'))
57
# self.assertEquals(b.get_revision_info('last:1'), (3, 'a@r-0-3'))
58
# self.assertEquals(b.get_revision_info('-1'), (3, 'a@r-0-3'))
60
self.assertEquals(RevisionSpec('ancestor:.').in_history(b).rev_id,
48
63
os.mkdir('newbranch')
49
b2 = Branch('newbranch', init=True)
50
self.assertEquals(b2.lookup_revision('revid:a@r-0-1'), 'a@r-0-1')
64
b2 = Branch.initialize('newbranch')
65
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
68
b3 = copy_branch(b, 'copy')
56
69
b3.commit('Commit four', rev_id='b@r-0-4')
57
self.assertEquals(b3.lookup_revision('ancestor:.'), 'a@r-0-3')
70
self.assertEquals(RevisionSpec('ancestor:.').in_history(b3).rev_id,
58
72
merge(['copy', -1], [None, None])
59
73
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')
74
self.assertEquals(RevisionSpec('ancestor:copy').in_history(b).rev_id,
76
self.assertEquals(RevisionSpec('ancestor:.').in_history(b3).rev_id,