Comment 1 for bug 413541

Revision history for this message
Martin Pool (mbp) wrote :

This too can be reproduced interactively

mbp@lithe% ./bzr init /tmp/aa
default2a plugin set default format to 2a
Created a standalone tree (format: 2a)
mbp@lithe% ./bzr upgrade /tmp/aa
default2a plugin set default format to 2a
starting upgrade of file:///tmp/aa/
making backup of file:///tmp/aa/.bzr
  to file:///tmp/aa/backup.bzr
starting repository conversion
repository converted
bzr: ERROR: Cannot convert from format Branch format 7 to format <class 'bzrlib.branch.BzrBranchFormat6'>. No converter

but not when the format is explicitly specified

mbp@lithe% bzr -Dno_default2a init --2a /tmp/a2
Created a standalone tree (format: 2a)
mbp@lithe% bzr -Dno_default2a upgrade --2a /tmp/a2
bzr: ERROR: The branch format Meta directory format 1 is already at the most recent format.

It should be branch 7 here so the question is why is it trying to go back to branch 6?

  File "/home/mbp/bzr/408824-test-upgrade/bzrlib/commands.py", line 835, in exception_to_return_code
    return the_callable(*args, **kwargs)
  File "/home/mbp/bzr/408824-test-upgrade/bzrlib/commands.py", line 1030, in run_bzr
    ret = run(*run_argv)
  File "/home/mbp/bzr/408824-test-upgrade/bzrlib/commands.py", line 647, in run_argv_aliases
    return self.run(**all_cmd_args)
  File "/home/mbp/bzr/408824-test-upgrade/bzrlib/builtins.py", line 3140, in run
    upgrade(url, format)
  File "/home/mbp/bzr/408824-test-upgrade/bzrlib/upgrade.py", line 85, in upgrade
    Convert(url, format)
  File "/home/mbp/bzr/408824-test-upgrade/bzrlib/upgrade.py", line 40, in __init__
    self.convert()
  File "/home/mbp/bzr/408824-test-upgrade/bzrlib/upgrade.py", line 79, in convert
    self.bzrdir = converter.convert(self.bzrdir, self.pb)
  File "/home/mbp/bzr/408824-test-upgrade/bzrlib/bzrdir.py", line 3042, in convert
    branch._format)
BadConversionTarget: Cannot convert from format Branch format 7 to format <class 'bzrlib.branch.BzrBranchFormat6'>. No converter

The format being passed in as the conversion target has branch format 6.

upgrade.py has some special code to use default-rich-root and I think my plugin isn't correctly updating that.