~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_upgrade.py

Merge up through 2.2.0.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2005 Canonical Ltd
 
1
# Copyright (C) 2005-2010 Canonical Ltd
2
2
#
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
32
32
    osutils,
33
33
    progress,
34
34
    repository,
 
35
    transport,
35
36
    workingtree,
36
37
    workingtree_4,
37
38
    )
44
45
 
45
46
class TestUpgrade(TestCaseWithTransport):
46
47
 
47
 
    def test_build_tree(self):
48
 
        """Test tree-building test helper"""
49
 
        self.build_tree_contents(_upgrade1_template)
50
 
        self.failUnlessExists('foo')
51
 
        self.failUnlessExists('.bzr/README')
52
 
 
53
48
    def test_upgrade_simple(self):
54
49
        """Upgrade simple v0.0.4 format to latest format"""
55
50
        eq = self.assertEquals
80
75
        finally:
81
76
            rt.unlock()
82
77
        # check a backup was made:
83
 
        transport = get_transport(b.base)
84
 
        transport.stat('backup.bzr')
85
 
        transport.stat('backup.bzr/README')
86
 
        transport.stat('backup.bzr/branch-format')
87
 
        transport.stat('backup.bzr/revision-history')
88
 
        transport.stat('backup.bzr/merged-patches')
89
 
        transport.stat('backup.bzr/pending-merged-patches')
90
 
        transport.stat('backup.bzr/pending-merges')
91
 
        transport.stat('backup.bzr/branch-name')
92
 
        transport.stat('backup.bzr/branch-lock')
93
 
        transport.stat('backup.bzr/inventory')
94
 
        transport.stat('backup.bzr/stat-cache')
95
 
        transport.stat('backup.bzr/text-store')
96
 
        transport.stat('backup.bzr/text-store/foo-20051004035611-1591048e9dc7c2d4.gz')
97
 
        transport.stat('backup.bzr/text-store/foo-20051004035756-4081373d897c3453.gz')
98
 
        transport.stat('backup.bzr/inventory-store/')
99
 
        transport.stat('backup.bzr/inventory-store/mbp@sourcefrog.net-20051004035611-176b16534b086b3c.gz')
100
 
        transport.stat('backup.bzr/inventory-store/mbp@sourcefrog.net-20051004035756-235f2b7dcdddd8dd.gz')
101
 
        transport.stat('backup.bzr/revision-store/')
102
 
        transport.stat('backup.bzr/revision-store/mbp@sourcefrog.net-20051004035611-176b16534b086b3c.gz')
103
 
        transport.stat('backup.bzr/revision-store/mbp@sourcefrog.net-20051004035756-235f2b7dcdddd8dd.gz')
 
78
        backup_dir = 'backup.bzr.~1~'
 
79
        t = transport.get_transport(b.base)
 
80
        t.stat(backup_dir)
 
81
        t.stat(backup_dir + '/README')
 
82
        t.stat(backup_dir + '/branch-format')
 
83
        t.stat(backup_dir + '/revision-history')
 
84
        t.stat(backup_dir + '/merged-patches')
 
85
        t.stat(backup_dir + '/pending-merged-patches')
 
86
        t.stat(backup_dir + '/pending-merges')
 
87
        t.stat(backup_dir + '/branch-name')
 
88
        t.stat(backup_dir + '/branch-lock')
 
89
        t.stat(backup_dir + '/inventory')
 
90
        t.stat(backup_dir + '/stat-cache')
 
91
        t.stat(backup_dir + '/text-store')
 
92
        t.stat(backup_dir + '/text-store/foo-20051004035611-1591048e9dc7c2d4.gz')
 
93
        t.stat(backup_dir + '/text-store/foo-20051004035756-4081373d897c3453.gz')
 
94
        t.stat(backup_dir + '/inventory-store/')
 
95
        t.stat(backup_dir + '/inventory-store/mbp@sourcefrog.net-20051004035611-176b16534b086b3c.gz')
 
96
        t.stat(backup_dir + '/inventory-store/mbp@sourcefrog.net-20051004035756-235f2b7dcdddd8dd.gz')
 
97
        t.stat(backup_dir + '/revision-store/')
 
98
        t.stat(backup_dir + '/revision-store/mbp@sourcefrog.net-20051004035611-176b16534b086b3c.gz')
 
99
        t.stat(backup_dir + '/revision-store/mbp@sourcefrog.net-20051004035756-235f2b7dcdddd8dd.gz')
104
100
 
105
101
    def test_upgrade_with_ghosts(self):
106
102
        """Upgrade v0.0.4 tree containing ghost references.
153
149
        # such a branch to metadir must not setup a working tree.
154
150
        self.build_tree_contents(_upgrade1_template)
155
151
        upgrade('.', bzrdir.BzrDirFormat6())
156
 
        transport = get_transport('.')
157
 
        transport.delete_multi(['.bzr/pending-merges', '.bzr/inventory'])
158
 
        self.assertFalse(transport.has('.bzr/stat-cache'))
 
152
        t = transport.get_transport('.')
 
153
        t.delete_multi(['.bzr/pending-merges', '.bzr/inventory'])
 
154
        self.assertFalse(t.has('.bzr/stat-cache'))
159
155
        # XXX: upgrade fails if a backup.bzr is already present
160
156
        # -- David Allouche 2006-08-11
161
 
        transport.delete_tree('backup.bzr')
 
157
        t.delete_tree('backup.bzr.~1~')
162
158
        # At this point, we have a format6 branch without checkout files.
163
159
        upgrade('.', bzrdir.BzrDirMetaFormat1())
164
160
        # The upgrade should not have set up a working tree.
186
182
        branch.set_push_location('file:///IJ')
187
183
        target = bzrdir.format_registry.make_bzrdir('dirstate-with-subtree')
188
184
        converter = branch.bzrdir._format.get_converter(target)
189
 
        converter.convert(branch.bzrdir, progress.DummyProgress())
 
185
        converter.convert(branch.bzrdir, None)
190
186
        new_branch = _mod_branch.Branch.open(self.get_url('branch'))
191
187
        self.assertIs(new_branch.__class__, _mod_branch.BzrBranch6)
192
188
        self.assertEqual('CD', new_branch.last_revision())
198
194
 
199
195
        branch2 = self.make_branch('branch2', format='knit')
200
196
        converter = branch2.bzrdir._format.get_converter(target)
201
 
        converter.convert(branch2.bzrdir, progress.DummyProgress())
 
197
        converter.convert(branch2.bzrdir, None)
202
198
        branch2 = _mod_branch.Branch.open(self.get_url('branch'))
203
199
        self.assertIs(branch2.__class__, _mod_branch.BzrBranch6)
204
200
 
207
203
        target = bzrdir.format_registry.make_bzrdir('1.9')
208
204
        target.set_branch_format(_mod_branch.BzrBranchFormat8())
209
205
        converter = branch.bzrdir._format.get_converter(target)
210
 
        converter.convert(branch.bzrdir, progress.DummyProgress())
 
206
        converter.convert(branch.bzrdir, None)
211
207
        branch = _mod_branch.Branch.open(self.get_url('branch'))
212
208
        self.assertIs(branch.__class__, _mod_branch.BzrBranch8)
213
209
        self.assertEqual({}, branch._get_all_reference_info())
217
213
        tree = self.make_branch_and_tree('tree', format='knit')
218
214
        target = bzrdir.format_registry.make_bzrdir('dirstate')
219
215
        converter = tree.bzrdir._format.get_converter(target)
220
 
        converter.convert(tree.bzrdir, progress.DummyProgress())
 
216
        converter.convert(tree.bzrdir, None)
221
217
        new_tree = workingtree.WorkingTree.open('tree')
222
218
        self.assertIs(new_tree.__class__, workingtree_4.WorkingTree4)
223
219
        self.assertEqual('null:', new_tree.last_revision())
230
226
        tree.add(['file'], ['file-id'])
231
227
        target = bzrdir.format_registry.make_bzrdir('dirstate')
232
228
        converter = tree.bzrdir._format.get_converter(target)
233
 
        converter.convert(tree.bzrdir, progress.DummyProgress())
 
229
        converter.convert(tree.bzrdir, None)
234
230
        new_tree = workingtree.WorkingTree.open('tree')
235
231
        self.assertIs(new_tree.__class__, workingtree_4.WorkingTree4)
236
232
        self.assertEqual('null:', new_tree.last_revision())
241
237
        rev_id = tree.commit('first post')
242
238
        target = bzrdir.format_registry.make_bzrdir('dirstate')
243
239
        converter = tree.bzrdir._format.get_converter(target)
244
 
        converter.convert(tree.bzrdir, progress.DummyProgress())
 
240
        converter.convert(tree.bzrdir, None)
245
241
        new_tree = workingtree.WorkingTree.open('tree')
246
242
        self.assertIs(new_tree.__class__, workingtree_4.WorkingTree4)
247
243
        self.assertEqual(rev_id, new_tree.last_revision())
258
254
        tree.merge_from_branch(merge_tree.branch)
259
255
        target = bzrdir.format_registry.make_bzrdir('dirstate')
260
256
        converter = tree.bzrdir._format.get_converter(target)
261
 
        converter.convert(tree.bzrdir, progress.DummyProgress())
 
257
        converter.convert(tree.bzrdir, None)
262
258
        new_tree = workingtree.WorkingTree.open('tree')
263
259
        self.assertIs(new_tree.__class__, workingtree_4.WorkingTree4)
264
260
        self.assertEqual(rev_id2, new_tree.last_revision())