示例#1
0
 def test_get_revision_head_single(self):
     map_ = RevisionMap(lambda: [
         Revision('a', ()),
         Revision('b', ('a', )),
         Revision('c', ('b', )),
     ])
     eq_(map_.get_revision('head'), map_._revision_map['c'])
示例#2
0
 def test_get_revision_base_single(self):
     map_ = RevisionMap(lambda: [
         Revision('a', ()),
         Revision('b', ('a', )),
         Revision('c', ('b', )),
     ])
     eq_(map_.get_revision('base'), None)
示例#3
0
 def setUp(self):
     self.map = RevisionMap(lambda: [
         Revision('a', ()),
         Revision('b1', ('a', )),
         Revision('b2', ('a', )),
         Revision('c', ('b1', 'b2')),
         Revision('d', ('c', )),
     ])
示例#4
0
 def test_get_revision_heads_multiple(self):
     map_ = RevisionMap(lambda: [
         Revision('a', ()),
         Revision('b', ('a', )),
         Revision('c1', ('b', )),
         Revision('c2', ('b', )),
     ])
     assert_raises_message(MultipleHeads, "Multiple heads are present",
                           map_.get_revision, "heads")
示例#5
0
    def test_add_revision_one_head(self):
        map_ = RevisionMap(lambda: [
            Revision('a', ()),
            Revision('b', ('a', )),
            Revision('c', ('b', )),
        ])
        eq_(map_.heads, ('c', ))

        map_.add_revision(Revision('d', ('c', )))
        eq_(map_.heads, ('d', ))
示例#6
0
    def test_add_revision_two_head(self):
        map_ = RevisionMap(lambda: [
            Revision('a', ()),
            Revision('b', ('a', )),
            Revision('c1', ('b', )),
            Revision('c2', ('b', )),
        ])
        eq_(map_.heads, ('c1', 'c2'))

        map_.add_revision(Revision('d1', ('c1', )))
        eq_(map_.heads, ('c2', 'd1'))
示例#7
0
 def setUp(self):
     self.map = RevisionMap(lambda: [
         Revision('a', (), branch_labels='abranch'),
         Revision('b', ('a', )),
         Revision('somelongername', ('b', )),
         Revision('c', ('somelongername', )),
         Revision('d', ()),
         Revision('e', ('d', ), branch_labels=['ebranch']),
         Revision('someothername', ('e', )),
         Revision('f', ('someothername', )),
     ])
示例#8
0
 def test_filter_for_lineage_labeled_head_across_merge(self):
     fn = lambda: [
         Revision('a', ()),
         Revision('b', ('a', )),
         Revision('c1', ('b', ), branch_labels='c1branch'),
         Revision('c2', ('b', )),
         Revision('d', ('c1', 'c2')),
     ]
     map_ = RevisionMap(fn)
     c1 = map_.get_revision('c1')
     c2 = map_.get_revision('c2')
     d = map_.get_revision('d')
     eq_(map_.filter_for_lineage([c1, c2, d], "c1branch@head"), [c1, c2, d])
示例#9
0
 def test_dupe_branch_collection(self):
     fn = lambda: [
         Revision('a', ()),
         Revision('b', ('a', )),
         Revision('c', ('b', ), branch_labels=['xy1']),
         Revision('d', ()),
         Revision('e', ('d', ), branch_labels=['xy1']),
         Revision('f', ('e', ))
     ]
     assert_raises_message(
         RevisionError, r"Branch name 'xy1' in revision (?:e|c) already "
         "used by revision (?:e|c)", getattr, RevisionMap(fn),
         "_revision_map")
示例#10
0
 def setUp(self):
     self.map = RevisionMap(lambda: [
         Revision('a', ()),
         Revision('b1', ('a', )),
         Revision('b2', ('a', )),
         Revision('cb1', ('b1', )),
         Revision('cb2', ('b2', )),
         Revision('d1cb1', ('cb1', )),  # head
         Revision('d2cb1', ('cb1', )),  # head
         Revision('d1cb2', ('cb2', )),
         Revision('d2cb2', ('cb2', )),
         Revision('d3cb2', ('cb2', )),  # head
         Revision('d1d2cb2', ('d1cb2', 'd2cb2'))  # head + merge point
     ])
示例#11
0
 def setUp(self):
     self.map = RevisionMap(lambda: [
         Revision('base1', (), branch_labels='b_1'),
         Revision('a1a', ('base1', )),
         Revision('a1b', ('base1', )),
         Revision('b1a', ('a1a', )),
         Revision('b1b', ('a1b', ), dependencies='a3'),
         Revision('base2', (), branch_labels='b_2'),
         Revision('a2', ('base2', )),
         Revision('b2', ('a2', )),
         Revision('c2', ('b2', ), dependencies='a3'),
         Revision('d2', ('c2', )),
         Revision('base3', (), branch_labels='b_3'),
         Revision('a3', ('base3', )),
         Revision('b3', ('a3', )),
     ])
示例#12
0
 def setUp(self):
     self.map = RevisionMap(lambda: [
         Revision('base1', ()),
         Revision('base2', ()),
         Revision('base3', ()),
         Revision('a1a', ('base1', )),
         Revision('a1b', ('base1', )),
         Revision('a2', ('base2', )),
         Revision('a3', ('base3', )),
         Revision('b1a', ('a1a', )),
         Revision('b1b', ('a1b', )),
         Revision('b2', ('a2', )),
         Revision('b3', ('a3', )),
         Revision('c2', ('b2', )),
         Revision('d2', ('c2', )),
         Revision('mergeb3d2', ('b3', 'd2'))
     ])
示例#13
0
 def setUp(self):
     self.map = RevisionMap(lambda: [
         Revision('a1', ()),
         Revision('a2', ('a1', )),
         Revision('a3', ('a2', )),
         Revision('b1', ('a3', )),
         Revision('b2', ('a3', )),
         Revision('cb1', ('b1', )),
         Revision('cb2', ('b2', )),
         Revision('db1', ('cb1', )),
         Revision('db2', ('cb2', )),
         Revision('e1b1', ('db1', )),
         Revision('fe1b1', ('e1b1', )),
         Revision('e2b1', ('db1', )),
         Revision('e2b2', ('db2', )),
         Revision("merge", ('e2b1', 'e2b2'))
     ])
示例#14
0
 def setUp(self):
     self.map = RevisionMap(lambda: [])