Comment 1 for bug 128724

Revision history for this message
John A Meinel (jameinel) wrote : Re: "bzr upgrade" attempts to convert dirstate-with-subtree to dirstate without me telling it to

Currently we have several formats that we consider an upgrade over our default
format.

Specifically we have:

 --format=dirstate Default
 --format=dirstate-tags Branch6 and Knit1
 --format=dirstate-with-subtree Branch6 and Knit3

When you run 'bzr upgrade' you should be able to specify any formats, and it
should provide a way to downgrade as long as they are compatible.
For example, you should be able to have a 'dirstate-tags' format, and downgrade
to 'dirstate', as long as you don't have any tags.

'dirstate-with-subtree' cannot be converted to 'dirstate', because of the
root-id tracking. So it is fine if you are in a 'dirstate-with-subtree'
branch+repo, that doing 'bzr upgrade --dirstate' should fail.

However, not supplying a value 'bzr upgrade', should just tell you that you are
already in the newest format, or that the default would actually be a
downgrade, or some other user friendly thing. Rather than trying to actually
downgrade your branch, and then failing with an error message.

The "simple" workaround is just to have the "highest" format be the default for
'bzr upgrade', but that isn't practical when we release a new format.

Instead we probably need to wait to set the target format until after we have
opened the source.

Thoughts?