~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/upgrade.py

  • Committer: Jonathan Riddell
  • Date: 2011-09-14 16:31:57 UTC
  • mto: This revision was merged to the branch mainline in revision 6139.
  • Revision ID: jriddell@canonical.com-20110914163157-ee87lu1pqmq5b4r3
default _translations back to None so we can tell if it gets installed

Show diffs side-by-side

added added

removed removed

Lines of Context:
16
16
 
17
17
"""bzr upgrade logic."""
18
18
 
19
 
from __future__ import absolute_import
20
19
 
21
20
from bzrlib import (
22
21
    errors,
24
23
    ui,
25
24
    urlutils,
26
25
    )
27
 
from bzrlib.controldir import (
28
 
    ControlDir,
 
26
from bzrlib.bzrdir import (
 
27
    BzrDir,
29
28
    format_registry,
30
29
    )
31
 
from bzrlib.i18n import gettext
32
30
from bzrlib.remote import RemoteBzrDir
33
31
 
34
32
 
55
53
        if control_dir is not None:
56
54
            self.bzrdir = control_dir
57
55
        else:
58
 
            self.bzrdir = ControlDir.open_unsupported(url)
 
56
            self.bzrdir = BzrDir.open_unsupported(url)
59
57
        if isinstance(self.bzrdir, RemoteBzrDir):
60
58
            self.bzrdir._ensure_real()
61
59
            self.bzrdir = self.bzrdir._real_bzrdir
73
71
        try:
74
72
            branch = self.bzrdir.open_branch()
75
73
            if branch.user_url != self.bzrdir.user_url:
76
 
                ui.ui_factory.note(gettext(
 
74
                ui.ui_factory.note(
77
75
                    'This is a checkout. The branch (%s) needs to be upgraded'
78
 
                    ' separately.') % (urlutils.unescape_for_display(
 
76
                    ' separately.' % (urlutils.unescape_for_display(
79
77
                        branch.user_url, 'utf-8')))
80
78
            del branch
81
79
        except (errors.NotBranchError, errors.IncompatibleRepositories):
97
95
        if not self.bzrdir.needs_format_conversion(format):
98
96
            raise errors.UpToDateFormat(self.bzrdir._format)
99
97
        if not self.bzrdir.can_convert_format():
100
 
            raise errors.BzrError(gettext("cannot upgrade from bzrdir format %s") %
 
98
            raise errors.BzrError("cannot upgrade from bzrdir format %s" %
101
99
                           self.bzrdir._format)
102
100
        self.bzrdir.check_conversion_target(format)
103
 
        ui.ui_factory.note(gettext('starting upgrade of %s') % 
 
101
        ui.ui_factory.note('starting upgrade of %s' % 
104
102
            urlutils.unescape_for_display(self.transport.base, 'utf-8'))
105
103
 
106
104
        self.backup_oldpath, self.backup_newpath = self.bzrdir.backup_bzrdir()
107
105
        while self.bzrdir.needs_format_conversion(format):
108
106
            converter = self.bzrdir._format.get_converter(format)
109
107
            self.bzrdir = converter.convert(self.bzrdir, None)
110
 
        ui.ui_factory.note(gettext('finished'))
 
108
        ui.ui_factory.note('finished')
111
109
 
112
110
    def clean_up(self):
113
111
        """Clean-up after a conversion.
117
115
        transport = self.transport
118
116
        backup_relpath = transport.relpath(self.backup_newpath)
119
117
        child_pb = ui.ui_factory.nested_progress_bar()
120
 
        child_pb.update(gettext('Deleting backup.bzr'))
 
118
        child_pb.update('Deleting backup.bzr')
121
119
        try:
122
120
            transport.delete_tree(backup_relpath)
123
121
        finally:
140
138
    :param dry_run: show what would happen but don't actually do any upgrades
141
139
    :return: the list of exceptions encountered
142
140
    """
143
 
    control_dirs = [ControlDir.open_unsupported(url)]
 
141
    control_dirs = [BzrDir.open_unsupported(url)]
144
142
    attempted, succeeded, exceptions = smart_upgrade(control_dirs,
145
143
        format, clean_up=clean_up, dry_run=dry_run)
146
144
    if len(attempted) > 1:
148
146
        succeeded_count = len(succeeded)
149
147
        failed_count = attempted_count - succeeded_count
150
148
        ui.ui_factory.note(
151
 
            gettext('\nSUMMARY: {0} upgrades attempted, {1} succeeded,'\
152
 
                    ' {2} failed').format(
153
 
                     attempted_count, succeeded_count, failed_count))
 
149
            '\nSUMMARY: %d upgrades attempted, %d succeeded, %d failed'
 
150
            % (attempted_count, succeeded_count, failed_count))
154
151
    return exceptions
155
152
 
156
153
 
205
202
    succeeded, exceptions = _convert_items([control_dir], format, clean_up,
206
203
                                           dry_run)
207
204
    if succeeded and dependents:
208
 
        ui.ui_factory.note(gettext('Found %d dependent branches - upgrading ...')
 
205
        ui.ui_factory.note('Found %d dependent branches - upgrading ...'
209
206
                           % (len(dependents),))
210
207
        # Convert dependent branches
211
208
        branch_cdirs = [b.bzrdir for b in dependents]
273
270
    succeeded = []
274
271
    exceptions = []
275
272
    child_pb = ui.ui_factory.nested_progress_bar()
276
 
    child_pb.update(gettext('Upgrading bzrdirs'), 0, len(items))
 
273
    child_pb.update('Upgrading bzrdirs', 0, len(items))
277
274
    for i, control_dir in enumerate(items):
278
275
        # Do the conversion
279
276
        location = control_dir.root_transport.base
280
277
        bzr_object, bzr_label = _get_object_and_label(control_dir)
281
278
        type_label = label or bzr_label
282
 
        child_pb.update(gettext("Upgrading %s") % (type_label), i+1, len(items))
283
 
        ui.ui_factory.note(gettext('Upgrading {0} {1} ...').format(type_label, 
 
279
        child_pb.update("Upgrading %s" % (type_label), i+1, len(items))
 
280
        ui.ui_factory.note('Upgrading %s %s ...' % (type_label, 
284
281
            urlutils.unescape_for_display(location, 'utf-8'),))
285
282
        try:
286
283
            if not dry_run:
287
284
                cv = Convert(control_dir=control_dir, format=format)
288
 
        except errors.UpToDateFormat, ex:
289
 
            ui.ui_factory.note(str(ex))
290
 
            succeeded.append(control_dir)
291
 
            continue
292
285
        except Exception, ex:
293
286
            trace.warning('conversion error: %s' % ex)
294
287
            exceptions.append(ex)
298
291
        succeeded.append(control_dir)
299
292
        if clean_up:
300
293
            try:
301
 
                ui.ui_factory.note(gettext('Removing backup ...'))
 
294
                ui.ui_factory.note('Removing backup ...')
302
295
                if not dry_run:
303
296
                    cv.clean_up()
304
297
            except Exception, ex:
305
 
                trace.warning(gettext('failed to clean-up {0}: {1}') % (location, ex))
 
298
                trace.warning('failed to clean-up %s: %s' % (location, ex))
306
299
                exceptions.append(ex)
307
300
 
308
301
    child_pb.finished()