28
28
from bzrlib.tests.test_sftp_transport import TestCaseWithSFTPServer
29
29
from bzrlib.transport import get_transport
30
30
import bzrlib.ui as ui
31
from bzrlib.repofmt.knitrepo import (
32
RepositoryFormatKnit1,
33
RepositoryFormatKnit2,
33
37
class TestWithUpgradableBranches(TestCaseWithTransport):
36
40
super(TestWithUpgradableBranches, self).setUp()
37
41
self.old_format = bzrdir.BzrDirFormat.get_default_format()
38
self.old_repo_format = \
39
bzrlib.repository.RepositoryFormat.get_default_format()
40
42
self.old_ui_factory = ui.ui_factory
41
43
self.addCleanup(self.restoreDefaults)
43
45
ui.ui_factory = TestUIFactory()
44
bzrdir.BzrDirFormat.set_default_format(bzrdir.BzrDirMetaFormat1())
45
bzrlib.repository.RepositoryFormat.set_default_format(
46
bzrlib.repository.RepositoryFormat7())
47
# FIXME RBC 20060120 we should be able to do this via ui calls only.
48
46
# setup a format 5 branch we can upgrade from.
49
t = get_transport(self.get_url())
50
t.mkdir('format_5_branch')
51
bzrdir.BzrDirFormat5().initialize(self.get_url('format_5_branch'))
52
bzrdir.BzrDir.create_standalone_workingtree('current_format_branch')
53
d = bzrdir.BzrDir.create('metadir_weave_branch')
56
d.create_workingtree()
57
self.run_bzr('checkout',
59
self.get_url('current_format_branch'),
60
'current_format_checkout')
47
self.make_branch_and_tree('format_5_branch',
48
format=bzrdir.BzrDirFormat5())
50
current_tree = self.make_branch_and_tree('current_format_branch',
52
self.make_branch_and_tree('metadir_weave_branch', format='metaweave')
53
current_tree.branch.create_checkout(
54
self.get_url('current_format_checkout'), lightweight=True)
62
56
def restoreDefaults(self):
63
bzrdir.BzrDirFormat.set_default_format(self.old_format)
64
bzrlib.repository.RepositoryFormat.set_default_format(
66
57
ui.ui_factory = self.old_ui_factory
58
bzrdir.BzrDirFormat._set_default_format(self.old_format)
68
60
def test_readonly_url_error(self):
69
61
(out, err) = self.run_bzr_captured(
111
103
# users can force an upgrade to metadir format.
112
104
url = get_transport(self.get_url('format_5_branch')).base
113
105
# check --format takes effect
114
bzrdir.BzrDirFormat.set_default_format(bzrdir.BzrDirFormat5())
106
bzrdir.BzrDirFormat._set_default_format(bzrdir.BzrDirFormat5())
115
107
(out, err) = self.run_bzr_captured(
116
108
['upgrade', '--format=metaweave', url])
117
109
self.assertEqualDiff("""starting upgrade of %s
136
128
url = get_transport(self.get_url('metadir_weave_branch')).base
137
129
# check --format takes effect
138
bzrdir.BzrDirFormat.set_default_format(bzrdir.BzrDirFormat5())
130
bzrdir.BzrDirFormat._set_default_format(bzrdir.BzrDirFormat5())
139
131
(out, err) = self.run_bzr_captured(
140
132
['upgrade', '--format=knit', url])
141
133
self.assertEqualDiff("""starting upgrade of %s
152
144
self.assertTrue(isinstance(converted_dir._format,
153
145
bzrdir.BzrDirMetaFormat1))
154
146
self.assertTrue(isinstance(converted_dir.open_repository()._format,
155
repository.RepositoryFormatKnit1))
147
RepositoryFormatKnit1))
157
149
def test_upgrade_repo(self):
158
150
self.run_bzr('init-repository', '--format=metaweave', 'repo')