/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar
5557.1.7 by John Arbash Meinel
Merge in the bzr.dev 5582
1
# Copyright (C) 2006-2011 Canonical Ltd
1887.1.1 by Adeodato Simó
Do not separate paragraphs in the copyright statement with blank lines,
2
#
1534.4.13 by Robert Collins
Give a reasonable warning on attempts to upgrade a readonly url.
3
# This program is free software; you can redistribute it and/or modify
4
# it under the terms of the GNU General Public License as published by
5
# the Free Software Foundation; either version 2 of the License, or
6
# (at your option) any later version.
1887.1.1 by Adeodato Simó
Do not separate paragraphs in the copyright statement with blank lines,
7
#
1534.4.13 by Robert Collins
Give a reasonable warning on attempts to upgrade a readonly url.
8
# This program is distributed in the hope that it will be useful,
9
# but WITHOUT ANY WARRANTY; without even the implied warranty of
10
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11
# GNU General Public License for more details.
1887.1.1 by Adeodato Simó
Do not separate paragraphs in the copyright statement with blank lines,
12
#
1534.4.13 by Robert Collins
Give a reasonable warning on attempts to upgrade a readonly url.
13
# You should have received a copy of the GNU General Public License
14
# along with this program; if not, write to the Free Software
4183.7.1 by Sabin Iacob
update FSF mailing address
15
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
1534.4.13 by Robert Collins
Give a reasonable warning on attempts to upgrade a readonly url.
16
17
"""Black box tests for the upgrade ui."""
5036.3.8 by Parth Malwankar
closed review comments from vila
18
import os
19
import stat
1534.4.13 by Robert Collins
Give a reasonable warning on attempts to upgrade a readonly url.
20
2323.6.1 by Martin Pool
(broken) Give a message when opening old workingtree formats suggesting upgrade
21
from bzrlib import (
22
    bzrdir,
5363.2.7 by Jelmer Vernooij
Fix tests.
23
    controldir,
5273.1.7 by Vincent Ladeuil
No more use of the get_transport imported *symbol*, all uses are through
24
    transport,
2323.6.1 by Martin Pool
(broken) Give a message when opening old workingtree formats suggesting upgrade
25
    )
26
from bzrlib.tests import (
5036.3.8 by Parth Malwankar
closed review comments from vila
27
    features,
2323.6.1 by Martin Pool
(broken) Give a message when opening old workingtree formats suggesting upgrade
28
    TestCaseWithTransport,
29
    )
1666.1.3 by Robert Collins
Fix and test upgrades from bzrdir 6 over SFTP.
30
from bzrlib.tests.test_sftp_transport import TestCaseWithSFTPServer
2241.1.6 by Martin Pool
Move Knit repositories into the submodule bzrlib.repofmt.knitrepo and
31
from bzrlib.repofmt.knitrepo import (
32
    RepositoryFormatKnit1,
33
    )
1534.5.9 by Robert Collins
Advise users running upgrade on a checkout to also run it on the branch.
34
35
1534.5.6 by Robert Collins
split out converter logic into per-format objects.
36
class TestWithUpgradableBranches(TestCaseWithTransport):
1534.4.13 by Robert Collins
Give a reasonable warning on attempts to upgrade a readonly url.
37
38
    def setUp(self):
1534.5.6 by Robert Collins
split out converter logic into per-format objects.
39
        super(TestWithUpgradableBranches, self).setUp()
5363.2.7 by Jelmer Vernooij
Fix tests.
40
        self.addCleanup(controldir.ControlDirFormat._set_default_format,
41
                        controldir.ControlDirFormat.get_default_format())
4608.1.1 by Martin Pool
Refactor blackbox.test_upgrade to do less work from setUp()
42
43
    def make_current_format_branch_and_checkout(self):
44
        current_tree = self.make_branch_and_tree('current_format_branch',
45
                                                 format='default')
46
        current_tree.branch.create_checkout(
47
            self.get_url('current_format_checkout'), lightweight=True)
48
49
    def make_format_5_branch(self):
1534.4.13 by Robert Collins
Give a reasonable warning on attempts to upgrade a readonly url.
50
        # setup a format 5 branch we can upgrade from.
2204.4.11 by Aaron Bentley
deprecate Repository.set_default_format, update upgrade tests
51
        self.make_branch_and_tree('format_5_branch',
52
                                  format=bzrdir.BzrDirFormat5())
53
4608.1.1 by Martin Pool
Refactor blackbox.test_upgrade to do less work from setUp()
54
    def make_metadir_weave_branch(self):
2204.4.11 by Aaron Bentley
deprecate Repository.set_default_format, update upgrade tests
55
        self.make_branch_and_tree('metadir_weave_branch', format='metaweave')
1534.4.13 by Robert Collins
Give a reasonable warning on attempts to upgrade a readonly url.
56
57
    def test_readonly_url_error(self):
4608.1.1 by Martin Pool
Refactor blackbox.test_upgrade to do less work from setUp()
58
        self.make_format_5_branch()
2530.3.4 by Martin Pool
Deprecate run_bzr_captured in favour of just run_bzr
59
        (out, err) = self.run_bzr(
60
            ['upgrade', self.get_readonly_url('format_5_branch')], retcode=3)
4360.10.46 by Vincent Ladeuil
Get rid of _verbose_warning and rework the messages overall display (revealing some incoherences) and fixing the tests accordingly.
61
        err_msg = 'Upgrade URL cannot work with readonly URLs.'
62
        self.assertEqualDiff('conversion error: %s\nbzr: ERROR: %s\n'
63
                             % (err_msg, err_msg),
64
                             err)
1534.5.6 by Robert Collins
split out converter logic into per-format objects.
65
66
    def test_upgrade_up_to_date(self):
4608.1.1 by Martin Pool
Refactor blackbox.test_upgrade to do less work from setUp()
67
        self.make_current_format_branch_and_checkout()
1534.5.6 by Robert Collins
split out converter logic into per-format objects.
68
        # when up to date we should get a message to that effect
2552.2.3 by Vincent Ladeuil
Deprecate the varargs syntax and fix the tests.
69
        (out, err) = self.run_bzr('upgrade current_format_branch', retcode=3)
4360.10.46 by Vincent Ladeuil
Get rid of _verbose_warning and rework the messages overall display (revealing some incoherences) and fixing the tests accordingly.
70
        err_msg = ('The branch format %s is already at the most recent format.'
71
                   % ('Meta directory format 1'))
72
        self.assertEqualDiff('conversion error: %s\nbzr: ERROR: %s\n'
73
                             % (err_msg, err_msg),
74
                             err)
1534.5.6 by Robert Collins
split out converter logic into per-format objects.
75
76
    def test_upgrade_up_to_date_checkout_warns_branch_left_alone(self):
4608.1.1 by Martin Pool
Refactor blackbox.test_upgrade to do less work from setUp()
77
        self.make_current_format_branch_and_checkout()
1534.5.6 by Robert Collins
split out converter logic into per-format objects.
78
        # when upgrading a checkout, the branch location and a suggestion
3943.8.1 by Marius Kruger
remove all trailing whitespace from bzr source
79
        # to upgrade it should be emitted even if the checkout is up to
1534.5.6 by Robert Collins
split out converter logic into per-format objects.
80
        # date
4360.10.46 by Vincent Ladeuil
Get rid of _verbose_warning and rework the messages overall display (revealing some incoherences) and fixing the tests accordingly.
81
        burl = self.get_transport('current_format_branch').base
82
        curl = self.get_transport('current_format_checkout').base
2552.2.3 by Vincent Ladeuil
Deprecate the varargs syntax and fix the tests.
83
        (out, err) = self.run_bzr('upgrade current_format_checkout', retcode=3)
4360.10.46 by Vincent Ladeuil
Get rid of _verbose_warning and rework the messages overall display (revealing some incoherences) and fixing the tests accordingly.
84
        self.assertEqual(
85
            'Upgrading branch %s ...\nThis is a checkout.'
86
            ' The branch (%s) needs to be upgraded separately.\n'
87
            % (curl, burl),
88
            out)
89
        msg = 'The branch format %s is already at the most recent format.' % (
90
            'Meta directory format 1')
91
        self.assertEqualDiff('conversion error: %s\nbzr: ERROR: %s\n'
92
                             % (msg, msg),
93
                             err)
1534.5.6 by Robert Collins
split out converter logic into per-format objects.
94
95
    def test_upgrade_checkout(self):
96
        # upgrading a checkout should work
97
        pass
98
99
    def test_upgrade_repository_scans_branches(self):
3943.8.1 by Marius Kruger
remove all trailing whitespace from bzr source
100
        # we should get individual upgrade notes for each branch even the
1534.5.6 by Robert Collins
split out converter logic into per-format objects.
101
        # anonymous branch
102
        pass
103
104
    def test_ugrade_branch_in_repo(self):
105
        # upgrading a branch in a repo should warn about not upgrading the repo
106
        pass
1534.5.13 by Robert Collins
Correct buggy test.
107
108
    def test_upgrade_explicit_metaformat(self):
109
        # users can force an upgrade to metadir format.
4608.1.1 by Martin Pool
Refactor blackbox.test_upgrade to do less work from setUp()
110
        self.make_format_5_branch()
5273.1.7 by Vincent Ladeuil
No more use of the get_transport imported *symbol*, all uses are through
111
        url = transport.get_transport(self.get_url('format_5_branch')).base
1857.1.20 by Aaron Bentley
Strip out all the EnumOption stuff
112
        # check --format takes effect
5363.2.7 by Jelmer Vernooij
Fix tests.
113
        controldir.ControlDirFormat._set_default_format(bzrdir.BzrDirFormat5())
5035.4.3 by Parth Malwankar
updated existing upgrade tests to work.
114
        backup_dir = 'backup.bzr.~1~'
2530.3.4 by Martin Pool
Deprecate run_bzr_captured in favour of just run_bzr
115
        (out, err) = self.run_bzr(
1857.1.20 by Aaron Bentley
Strip out all the EnumOption stuff
116
            ['upgrade', '--format=metaweave', url])
4360.10.46 by Vincent Ladeuil
Get rid of _verbose_warning and rework the messages overall display (revealing some incoherences) and fixing the tests accordingly.
117
        self.assertEqualDiff("""Upgrading branch %s ...
118
starting upgrade of %s
3943.2.4 by Martin Pool
Move backup progress indicators from upgrade.py into backup_bzrdir, and tweak text
119
making backup of %s.bzr
5035.4.3 by Parth Malwankar
updated existing upgrade tests to work.
120
  to %s%s
1534.5.13 by Robert Collins
Correct buggy test.
121
starting upgrade from format 5 to 6
122
adding prefixes to weaves
123
adding prefixes to revision-store
124
starting upgrade from format 6 to metadir
125
finished
4360.10.46 by Vincent Ladeuil
Get rid of _verbose_warning and rework the messages overall display (revealing some incoherences) and fixing the tests accordingly.
126
""" % (url, url, url, url, backup_dir), out)
1534.5.13 by Robert Collins
Correct buggy test.
127
        self.assertEqualDiff("", err)
128
        self.assertTrue(isinstance(
129
            bzrdir.BzrDir.open(self.get_url('format_5_branch'))._format,
130
            bzrdir.BzrDirMetaFormat1))
1556.1.4 by Robert Collins
Add a new format for what will become knit, and the surrounding logic to upgrade repositories within metadirs, and tests for the same.
131
132
    def test_upgrade_explicit_knit(self):
3943.8.1 by Marius Kruger
remove all trailing whitespace from bzr source
133
        # users can force an upgrade to knit format from a metadir weave
1556.1.4 by Robert Collins
Add a new format for what will become knit, and the surrounding logic to upgrade repositories within metadirs, and tests for the same.
134
        # branch
4608.1.1 by Martin Pool
Refactor blackbox.test_upgrade to do less work from setUp()
135
        self.make_metadir_weave_branch()
5273.1.7 by Vincent Ladeuil
No more use of the get_transport imported *symbol*, all uses are through
136
        url = transport.get_transport(self.get_url('metadir_weave_branch')).base
1857.1.20 by Aaron Bentley
Strip out all the EnumOption stuff
137
        # check --format takes effect
5363.2.7 by Jelmer Vernooij
Fix tests.
138
        controldir.ControlDirFormat._set_default_format(bzrdir.BzrDirFormat5())
5035.4.3 by Parth Malwankar
updated existing upgrade tests to work.
139
        backup_dir = 'backup.bzr.~1~'
2530.3.4 by Martin Pool
Deprecate run_bzr_captured in favour of just run_bzr
140
        (out, err) = self.run_bzr(
1857.1.20 by Aaron Bentley
Strip out all the EnumOption stuff
141
            ['upgrade', '--format=knit', url])
4360.10.46 by Vincent Ladeuil
Get rid of _verbose_warning and rework the messages overall display (revealing some incoherences) and fixing the tests accordingly.
142
        self.assertEqualDiff("""Upgrading branch %s ...
143
starting upgrade of %s
3943.2.4 by Martin Pool
Move backup progress indicators from upgrade.py into backup_bzrdir, and tweak text
144
making backup of %s.bzr
5035.4.3 by Parth Malwankar
updated existing upgrade tests to work.
145
  to %s%s
1556.1.4 by Robert Collins
Add a new format for what will become knit, and the surrounding logic to upgrade repositories within metadirs, and tests for the same.
146
starting repository conversion
147
repository converted
148
finished
4360.10.46 by Vincent Ladeuil
Get rid of _verbose_warning and rework the messages overall display (revealing some incoherences) and fixing the tests accordingly.
149
""" % (url, url, url, url, backup_dir),
150
                             out)
1556.1.4 by Robert Collins
Add a new format for what will become knit, and the surrounding logic to upgrade repositories within metadirs, and tests for the same.
151
        self.assertEqualDiff("", err)
152
        converted_dir = bzrdir.BzrDir.open(self.get_url('metadir_weave_branch'))
153
        self.assertTrue(isinstance(converted_dir._format,
154
                                   bzrdir.BzrDirMetaFormat1))
155
        self.assertTrue(isinstance(converted_dir.open_repository()._format,
2241.1.6 by Martin Pool
Move Knit repositories into the submodule bzrlib.repofmt.knitrepo and
156
                                   RepositoryFormatKnit1))
1558.7.2 by Aaron Bentley
Upgrade works in repositories
157
158
    def test_upgrade_repo(self):
2552.2.3 by Vincent Ladeuil
Deprecate the varargs syntax and fix the tests.
159
        self.run_bzr('init-repository --format=metaweave repo')
160
        self.run_bzr('upgrade --format=knit repo')
1666.1.3 by Robert Collins
Fix and test upgrades from bzrdir 6 over SFTP.
161
4360.10.38 by Vincent Ladeuil
Use assertXXX instead of _assert_xxx helpers.
162
    def assertLegalOption(self, option_str):
4360.10.8 by Ian Clatworthy
add blackbox tests
163
        # Confirm that an option is legal. (Lower level tests are
164
        # expected to validate the actual functionality.)
165
        self.run_bzr('init --format=pack-0.92 branch-foo')
166
        self.run_bzr('upgrade --format=2a branch-foo %s' % (option_str,))
167
4360.10.38 by Vincent Ladeuil
Use assertXXX instead of _assert_xxx helpers.
168
    def assertBranchFormat(self, dir, format):
4360.10.18 by Ian Clatworthy
Add basic checks to blackbox tests (beyond legal usage) as requested by poolie
169
        branch = bzrdir.BzrDir.open_tree_or_branch(self.get_url(dir))[1]
170
        branch_format = branch._format
171
        meta_format = bzrdir.format_registry.make_bzrdir(format)
172
        expected_format = meta_format.get_branch_format()
173
        self.assertEqual(expected_format, branch_format)
174
4360.10.8 by Ian Clatworthy
add blackbox tests
175
    def test_upgrade_clean_supported(self):
4360.10.38 by Vincent Ladeuil
Use assertXXX instead of _assert_xxx helpers.
176
        self.assertLegalOption('--clean')
177
        self.assertBranchFormat('branch-foo', '2a')
4360.10.26 by Matthew Fuller
Test the [non-]existence of the current backup dir name.
178
        backup_bzr_dir = os.path.join("branch-foo", "backup.bzr.~1~")
4360.10.18 by Ian Clatworthy
Add basic checks to blackbox tests (beyond legal usage) as requested by poolie
179
        self.assertFalse(os.path.exists(backup_bzr_dir))
4360.10.8 by Ian Clatworthy
add blackbox tests
180
181
    def test_upgrade_dry_run_supported(self):
4360.10.38 by Vincent Ladeuil
Use assertXXX instead of _assert_xxx helpers.
182
        self.assertLegalOption('--dry-run')
183
        self.assertBranchFormat('branch-foo', 'pack-0.92')
4360.10.8 by Ian Clatworthy
add blackbox tests
184
4634.148.1 by Martin Pool
Backport fix for permissions of backup.bzr
185
    def test_upgrade_permission_check(self):
186
        """'backup.bzr' should retain permissions of .bzr. Bug #262450"""
5094.3.2 by Martin Pool
Fix up feature name
187
        self.requireFeature(features.posix_permissions_feature)
4634.148.1 by Martin Pool
Backport fix for permissions of backup.bzr
188
        old_perms = stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR
5036.3.10 by Parth Malwankar
merged in trunk. fixed blackbox.test_upgrade to use backup.bzr.~N~ convention.
189
        backup_dir = 'backup.bzr.~1~'
4634.148.1 by Martin Pool
Backport fix for permissions of backup.bzr
190
        self.run_bzr('init --format=1.6')
191
        os.chmod('.bzr', old_perms)
192
        self.run_bzr('upgrade')
193
        new_perms = os.stat(backup_dir).st_mode & 0777
194
        self.assertTrue(new_perms == old_perms)
195
1666.1.3 by Robert Collins
Fix and test upgrades from bzrdir 6 over SFTP.
196
5035.4.4 by Parth Malwankar
test updated to check for creation of backup.bzr.~2~ when backup.bzr.~1~ exists
197
    def test_upgrade_with_existing_backup_dir(self):
198
        self.make_format_5_branch()
5273.1.7 by Vincent Ladeuil
No more use of the get_transport imported *symbol*, all uses are through
199
        t = transport.get_transport(self.get_url('format_5_branch'))
200
        url = t.base
5363.2.7 by Jelmer Vernooij
Fix tests.
201
        controldir.ControlDirFormat._set_default_format(bzrdir.BzrDirFormat5())
5035.4.4 by Parth Malwankar
test updated to check for creation of backup.bzr.~2~ when backup.bzr.~1~ exists
202
        backup_dir1 = 'backup.bzr.~1~'
203
        backup_dir2 = 'backup.bzr.~2~'
5035.4.6 by Parth Malwankar
added doc to test
204
        # explicitly create backup_dir1. bzr should create the .~2~ directory
205
        # as backup
5273.1.7 by Vincent Ladeuil
No more use of the get_transport imported *symbol*, all uses are through
206
        t.mkdir(backup_dir1)
5035.4.4 by Parth Malwankar
test updated to check for creation of backup.bzr.~2~ when backup.bzr.~1~ exists
207
        (out, err) = self.run_bzr(
208
            ['upgrade', '--format=metaweave', url])
4360.10.46 by Vincent Ladeuil
Get rid of _verbose_warning and rework the messages overall display (revealing some incoherences) and fixing the tests accordingly.
209
        self.assertEqualDiff("""Upgrading branch %s ...
210
starting upgrade of %s
5035.4.4 by Parth Malwankar
test updated to check for creation of backup.bzr.~2~ when backup.bzr.~1~ exists
211
making backup of %s.bzr
212
  to %s%s
213
starting upgrade from format 5 to 6
214
adding prefixes to weaves
215
adding prefixes to revision-store
216
starting upgrade from format 6 to metadir
217
finished
4360.10.46 by Vincent Ladeuil
Get rid of _verbose_warning and rework the messages overall display (revealing some incoherences) and fixing the tests accordingly.
218
""" % (url, url, url, url, backup_dir2), out)
5035.4.4 by Parth Malwankar
test updated to check for creation of backup.bzr.~2~ when backup.bzr.~1~ exists
219
        self.assertEqualDiff("", err)
220
        self.assertTrue(isinstance(
221
            bzrdir.BzrDir.open(self.get_url('format_5_branch'))._format,
222
            bzrdir.BzrDirMetaFormat1))
5273.1.7 by Vincent Ladeuil
No more use of the get_transport imported *symbol*, all uses are through
223
        self.assertTrue(t.has(backup_dir2))
5035.4.4 by Parth Malwankar
test updated to check for creation of backup.bzr.~2~ when backup.bzr.~1~ exists
224
1666.1.3 by Robert Collins
Fix and test upgrades from bzrdir 6 over SFTP.
225
class SFTPTests(TestCaseWithSFTPServer):
226
    """Tests for upgrade over sftp."""
227
228
    def test_upgrade_url(self):
2552.2.3 by Vincent Ladeuil
Deprecate the varargs syntax and fix the tests.
229
        self.run_bzr('init --format=weave')
5273.1.7 by Vincent Ladeuil
No more use of the get_transport imported *symbol*, all uses are through
230
        t = transport.get_transport(self.get_url())
1666.1.3 by Robert Collins
Fix and test upgrades from bzrdir 6 over SFTP.
231
        url = t.base
2552.2.3 by Vincent Ladeuil
Deprecate the varargs syntax and fix the tests.
232
        out, err = self.run_bzr(['upgrade', '--format=knit', url])
5035.4.3 by Parth Malwankar
updated existing upgrade tests to work.
233
        backup_dir = 'backup.bzr.~1~'
4360.10.46 by Vincent Ladeuil
Get rid of _verbose_warning and rework the messages overall display (revealing some incoherences) and fixing the tests accordingly.
234
        self.assertEqualDiff("""Upgrading branch %s ...
235
starting upgrade of %s
3943.2.4 by Martin Pool
Move backup progress indicators from upgrade.py into backup_bzrdir, and tweak text
236
making backup of %s.bzr
5035.4.3 by Parth Malwankar
updated existing upgrade tests to work.
237
  to %s%s
1666.1.3 by Robert Collins
Fix and test upgrades from bzrdir 6 over SFTP.
238
starting upgrade from format 6 to metadir
239
starting repository conversion
240
repository converted
241
finished
4360.10.46 by Vincent Ladeuil
Get rid of _verbose_warning and rework the messages overall display (revealing some incoherences) and fixing the tests accordingly.
242
""" % (url, url, url, url,backup_dir), out)
1666.1.3 by Robert Collins
Fix and test upgrades from bzrdir 6 over SFTP.
243
        self.assertEqual('', err)
2323.6.1 by Martin Pool
(broken) Give a message when opening old workingtree formats suggesting upgrade
244
245
4634.2.1 by Robert Collins
Fix regression in upgrade introduced with the change to upgrade in rev 4622.
246
class UpgradeRecommendedTests(TestCaseWithTransport):
2323.6.1 by Martin Pool
(broken) Give a message when opening old workingtree formats suggesting upgrade
247
248
    def test_recommend_upgrade_wt4(self):
249
        # using a deprecated format gives a warning
2552.2.3 by Vincent Ladeuil
Deprecate the varargs syntax and fix the tests.
250
        self.run_bzr('init --knit a')
251
        out, err = self.run_bzr('status a')
2323.6.1 by Martin Pool
(broken) Give a message when opening old workingtree formats suggesting upgrade
252
        self.assertContainsRe(err, 'bzr upgrade .*[/\\\\]a')
2323.5.19 by Martin Pool
No upgrade recommendation on source when cloning
253
254
    def test_no_upgrade_recommendation_from_bzrdir(self):
255
        # we should only get a recommendation to upgrade when we're accessing
256
        # the actual workingtree, not when we only open a bzrdir that contains
257
        # an old workngtree
2552.2.3 by Vincent Ladeuil
Deprecate the varargs syntax and fix the tests.
258
        self.run_bzr('init --knit a')
3123.5.22 by Aaron Bentley
Change failing test to use another command, since checkout now uses trees
259
        out, err = self.run_bzr('revno a')
2323.5.19 by Martin Pool
No upgrade recommendation on source when cloning
260
        if err.find('upgrade') > -1:
261
            self.fail("message shouldn't suggest upgrade:\n%s" % err)
4634.2.1 by Robert Collins
Fix regression in upgrade introduced with the change to upgrade in rev 4622.
262
263
    def test_upgrade_shared_repo(self):
264
        repo = self.make_repository('repo', format='2a', shared=True)
265
        branch = self.make_branch_and_tree('repo/branch', format="pack-0.92")
266
        self.get_transport('repo/branch/.bzr/repository').delete_tree('.')
267
        out, err = self.run_bzr(['upgrade'], working_dir='repo/branch')