Created: 2009-04-21 by IanClatworthy
This specification recommends adding metadata to each branch recording what files plugins need the branch to carry around with them.
This specification is part of the formats-end-game umbrella specification.
It should be simple for a plugin to ask a branch to cart around some data for it. The plugin should need to provide a filename (assumed relative to .bzr/branch) and a merge routine.
An API something like:
Branch.register_baggage(plugin_name, filename, merge_handler)
A branch could have a .bzr/branch/baggage directory and we could agree to cart stuff in there around, rather than permit arbitrary filenames.
The baggage concept might be useful for new features and not just plugins. It might also be a solution for carting around rules and configuration settings that we want propagated.
Is there any sensible default merge, e.g. always override the complete file with the new one? There might be if metadata was assumed to always be serialised in rio, say. Then again, probably not.