~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/builtins.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2010-12-20 12:36:32 UTC
  • mfrom: (5575.1.1 trunk)
  • Revision ID: pqm@pqm.ubuntu.com-20101220123632-wy6hqs3hndg74449
(vila) Smoother upgrades (Matthew Fuller)

Show diffs side-by-side

added added

removed removed

Lines of Context:
3328
3328
 
3329
3329
 
3330
3330
class cmd_upgrade(Command):
3331
 
    __doc__ = """Upgrade branch storage to current format.
3332
 
 
3333
 
    The check command or bzr developers may sometimes advise you to run
3334
 
    this command. When the default format has changed you may also be warned
3335
 
    during other operations to upgrade.
 
3331
    __doc__ = """Upgrade a repository, branch or working tree to a newer format.
 
3332
 
 
3333
    When the default format has changed after a major new release of
 
3334
    Bazaar, you may be informed during certain operations that you
 
3335
    should upgrade. Upgrading to a newer format may improve performance
 
3336
    or make new features available. It may however limit interoperability
 
3337
    with older repositories or with older versions of Bazaar.
 
3338
 
 
3339
    If you wish to upgrade to a particular format rather than the
 
3340
    current default, that can be specified using the --format option.
 
3341
    As a consequence, you can use the upgrade command this way to
 
3342
    "downgrade" to an earlier format, though some conversions are
 
3343
    a one way process (e.g. changing from the 1.x default to the
 
3344
    2.x default) so downgrading is not always possible.
 
3345
 
 
3346
    A backup.bzr.~#~ directory is created at the start of the conversion
 
3347
    process (where # is a number). By default, this is left there on
 
3348
    completion. If the conversion fails, delete the new .bzr directory
 
3349
    and rename this one back in its place. Use the --clean option to ask
 
3350
    for the backup.bzr directory to be removed on successful conversion.
 
3351
    Alternatively, you can delete it by hand if everything looks good
 
3352
    afterwards.
 
3353
 
 
3354
    If the location given is a shared repository, dependent branches
 
3355
    are also converted provided the repository converts successfully.
 
3356
    If the conversion of a branch fails, remaining branches are still
 
3357
    tried.
 
3358
 
 
3359
    For more information on upgrades, see the Bazaar Upgrade Guide,
 
3360
    http://doc.bazaar.canonical.com/latest/en/upgrade-guide/.
3336
3361
    """
3337
3362
 
3338
 
    _see_also = ['check']
 
3363
    _see_also = ['check', 'reconcile', 'formats']
3339
3364
    takes_args = ['url?']
3340
3365
    takes_options = [
3341
 
                    RegistryOption('format',
3342
 
                        help='Upgrade to a specific format.  See "bzr help'
3343
 
                             ' formats" for details.',
3344
 
                        lazy_registry=('bzrlib.bzrdir', 'format_registry'),
3345
 
                        converter=lambda name: bzrdir.format_registry.make_bzrdir(name),
3346
 
                        value_switches=True, title='Branch format'),
3347
 
                    ]
 
3366
        RegistryOption('format',
 
3367
            help='Upgrade to a specific format.  See "bzr help'
 
3368
                 ' formats" for details.',
 
3369
            lazy_registry=('bzrlib.bzrdir', 'format_registry'),
 
3370
            converter=lambda name: bzrdir.format_registry.make_bzrdir(name),
 
3371
            value_switches=True, title='Branch format'),
 
3372
        Option('clean',
 
3373
            help='Remove the backup.bzr directory if successful.'),
 
3374
        Option('dry-run',
 
3375
            help="Show what would be done, but don't actually do anything."),
 
3376
    ]
3348
3377
 
3349
 
    def run(self, url='.', format=None):
 
3378
    def run(self, url='.', format=None, clean=False, dry_run=False):
3350
3379
        from bzrlib.upgrade import upgrade
3351
 
        upgrade(url, format)
 
3380
        exceptions = upgrade(url, format, clean_up=clean, dry_run=dry_run)
 
3381
        if exceptions:
 
3382
            if len(exceptions) == 1:
 
3383
                # Compatibility with historical behavior
 
3384
                raise exceptions[0]
 
3385
            else:
 
3386
                return 3
3352
3387
 
3353
3388
 
3354
3389
class cmd_whoami(Command):