47
47
def test_revision_graph(self):
48
48
tests.run_git('init')
49
self.build_tree(['a'])
50
tests.run_git('add', 'a')
51
tests.run_git('commit', '-m', 'a')
52
tests.run_git('branch', 'foo')
53
self.build_tree_contents([('a', 'new a\n')])
54
tests.run_git('commit', '-a', '-m', 'new a')
55
tests.run_git('checkout', 'foo')
56
self.build_tree(['b'])
57
tests.run_git('add', 'b')
58
tests.run_git('commit', '-m', 'b')
59
tests.run_git('merge', 'master')
61
revisions = tests.run_git('rev-list', '--topo-order', 'HEAD')
62
revisions = [ids.convert_revision_id_git_to_bzr(r)
63
for r in revisions.splitlines()]
64
graph = {revisions[0]:[revisions[2], revisions[1]],
65
revisions[1]:[revisions[3]],
66
revisions[2]:[revisions[3]],
49
builder = tests.GitBranchBuilder()
50
file_handle = builder.set_file('a', 'text for a\n', False)
51
commit1_handle = builder.commit('Joe Foo <joe@foo.com>', u'message')
52
file2_handle = builder.set_file('a', 'new a\n', False)
53
commit2_handle = builder.commit('Joe Foo <joe@foo.com>', u'new a')
54
file3_handle = builder.set_file('b', 'text for b\n', False)
55
commit3_handle = builder.commit('Jerry Bar <jerry@foo.com>', u'b',
57
commit4_handle = builder.commit('Jerry Bar <jerry@foo.com>', u'merge',
59
merge=[commit2_handle],)
61
mapping = builder.finish()
62
commit1_id = mapping[commit1_handle]
63
commit2_id = mapping[commit2_handle]
64
commit3_id = mapping[commit3_handle]
65
commit4_id = mapping[commit4_handle]
67
revisions = tests.run_git('rev-list', '--topo-order',
69
revisions = revisions.splitlines()
70
self.assertEqual([commit4_id, commit2_id, commit3_id, commit1_id],
72
bzr_revisions = [ids.convert_revision_id_git_to_bzr(r) for r in revisions]
73
graph = {bzr_revisions[0]:[bzr_revisions[2], bzr_revisions[1]],
74
bzr_revisions[1]:[bzr_revisions[3]],
75
bzr_revisions[2]:[bzr_revisions[3]],
70
79
repo = repository.Repository.open('.')
71
self.assertEqual(graph, repo.get_revision_graph(revisions[0]))
72
self.assertEqual({revisions[3]:[]},
73
repo.get_revision_graph(revisions[3]))
80
self.assertEqual(graph, repo.get_revision_graph(bzr_revisions[0]))
81
self.assertEqual({bzr_revisions[3]:[]},
82
repo.get_revision_graph(bzr_revisions[3]))