~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/upgrade.py

  • Committer: Jelmer Vernooij
  • Date: 2011-06-16 11:58:04 UTC
  • mto: This revision was merged to the branch mainline in revision 5987.
  • Revision ID: jelmer@samba.org-20110616115804-7tnqon61emrbdoxm
RemoveĀ unusedĀ Tree._get_ancestors.

Show diffs side-by-side

added added

removed removed

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