48
48
b.set_parent('file:///EF')
49
49
b.set_bound_location('file:///GH')
50
50
b.set_push_location('file:///IJ')
51
target = controldir.format_registry.make_bzrdir('dirstate-with-subtree')
52
converter = b.bzrdir._format.get_converter(target)
53
converter.convert(b.bzrdir, None)
51
target = controldir.format_registry.make_controldir('dirstate-with-subtree')
52
converter = b.controldir._format.get_converter(target)
53
converter.convert(b.controldir, None)
54
54
new_branch = branch.Branch.open(self.get_url('branch'))
55
55
self.assertIs(new_branch.__class__, bzrbranch.BzrBranch6)
56
56
self.assertEqual('CD', new_branch.last_revision())
60
60
self.assertEqual('file:///IJ', branch_config.get('push_location'))
62
62
b2 = self.make_branch('branch2', format='knit')
63
converter = b2.bzrdir._format.get_converter(target)
64
converter.convert(b2.bzrdir, None)
63
converter = b2.controldir._format.get_converter(target)
64
converter.convert(b2.controldir, None)
65
65
b2 = branch.Branch.open(self.get_url('branch'))
66
66
self.assertIs(b2.__class__, bzrbranch.BzrBranch6)
68
68
def test_convert_branch7_branch8(self):
69
69
b = self.make_branch('branch', format='1.9')
70
target = controldir.format_registry.make_bzrdir('1.9')
70
target = controldir.format_registry.make_controldir('1.9')
71
71
target.set_branch_format(bzrbranch.BzrBranchFormat8())
72
converter = b.bzrdir._format.get_converter(target)
73
converter.convert(b.bzrdir, None)
72
converter = b.controldir._format.get_converter(target)
73
converter.convert(b.controldir, None)
74
74
b = branch.Branch.open(self.get_url('branch'))
75
75
self.assertIs(b.__class__, bzrbranch.BzrBranch8)
76
76
self.assertEqual({}, b._get_all_reference_info())
78
78
def test_convert_knit_dirstate_empty(self):
79
79
# test that asking for an upgrade from knit to dirstate works.
80
80
tree = self.make_branch_and_tree('tree', format='knit')
81
target = controldir.format_registry.make_bzrdir('dirstate')
82
converter = tree.bzrdir._format.get_converter(target)
83
converter.convert(tree.bzrdir, None)
81
target = controldir.format_registry.make_controldir('dirstate')
82
converter = tree.controldir._format.get_converter(target)
83
converter.convert(tree.controldir, None)
84
84
new_tree = workingtree.WorkingTree.open('tree')
85
85
self.assertIs(new_tree.__class__, workingtree_4.WorkingTree4)
86
86
self.assertEqual('null:', new_tree.last_revision())
91
91
tree = self.make_branch_and_tree('tree', format='knit')
92
92
self.build_tree(['tree/file'])
93
93
tree.add(['file'], ['file-id'])
94
target = controldir.format_registry.make_bzrdir('dirstate')
95
converter = tree.bzrdir._format.get_converter(target)
96
converter.convert(tree.bzrdir, None)
94
target = controldir.format_registry.make_controldir('dirstate')
95
converter = tree.controldir._format.get_converter(target)
96
converter.convert(tree.controldir, None)
97
97
new_tree = workingtree.WorkingTree.open('tree')
98
98
self.assertIs(new_tree.__class__, workingtree_4.WorkingTree4)
99
99
self.assertEqual('null:', new_tree.last_revision())
102
102
# test that asking for an upgrade from knit to dirstate works.
103
103
tree = self.make_branch_and_tree('tree', format='knit')
104
104
rev_id = tree.commit('first post')
105
target = controldir.format_registry.make_bzrdir('dirstate')
106
converter = tree.bzrdir._format.get_converter(target)
107
converter.convert(tree.bzrdir, None)
105
target = controldir.format_registry.make_controldir('dirstate')
106
converter = tree.controldir._format.get_converter(target)
107
converter.convert(tree.controldir, None)
108
108
new_tree = workingtree.WorkingTree.open('tree')
109
109
self.assertIs(new_tree.__class__, workingtree_4.WorkingTree4)
110
110
self.assertEqual(rev_id, new_tree.last_revision())
115
115
def test_convert_knit_merges_dirstate(self):
116
116
tree = self.make_branch_and_tree('tree', format='knit')
117
117
rev_id = tree.commit('first post')
118
merge_tree = tree.bzrdir.sprout('tree2').open_workingtree()
118
merge_tree = tree.controldir.sprout('tree2').open_workingtree()
119
119
rev_id2 = tree.commit('second post')
120
120
rev_id3 = merge_tree.commit('second merge post')
121
121
tree.merge_from_branch(merge_tree.branch)
122
target = controldir.format_registry.make_bzrdir('dirstate')
123
converter = tree.bzrdir._format.get_converter(target)
124
converter.convert(tree.bzrdir, None)
122
target = controldir.format_registry.make_controldir('dirstate')
123
converter = tree.controldir._format.get_converter(target)
124
converter.convert(tree.controldir, None)
125
125
new_tree = workingtree.WorkingTree.open('tree')
126
126
self.assertIs(new_tree.__class__, workingtree_4.WorkingTree4)
127
127
self.assertEqual(rev_id2, new_tree.last_revision())
134
134
class TestSmartUpgrade(tests.TestCaseWithTransport):
136
from_format = controldir.format_registry.make_bzrdir("pack-0.92")
137
to_format = controldir.format_registry.make_bzrdir("2a")
136
from_format = controldir.format_registry.make_controldir("pack-0.92")
137
to_format = controldir.format_registry.make_controldir("2a")
139
139
def make_standalone_branch(self):
140
140
wt = self.make_branch_and_tree("branch1", format=self.from_format)
143
143
def test_upgrade_standalone_branch(self):
144
144
control = self.make_standalone_branch()