branch specific rules - the latest proposal
Ian Clatworthy
ian.clatworthy at canonical.com
Thu Nov 12 23:33:38 GMT 2009
Alexander Belchenko wrote:
> * Does .bzrmeta will be final answer on the question: "will bzr support versioned properties"?
We have no plans for bzr core to ever support versioned properties.
> * How you suppose to fix chicken-eggs problem? E.g. on the phase of building/updating tree you need
> access to .bzrmeta content but it is not hit the disk yet?
> * If there is planned to provide some sort of builtin API to work with .bzrmeta content?
I'm pretty sure my earlier patches in this space ran into exactly that
problem and the solution was a a smart API. My expectation is that that
API will be useful to plugins. More details later after I think about it
more.
> Any CLI API
> planned to set/change/delete config options/rules?
Not at this stage.
> * For plugins like scmproj or bzr-externals there is need in having 2 forms of some config/rule:
> canonical form which stored in repo and local form which can be used to override some settings
> locally (e.g. if you have local mirror of heavy branch then you don't need to fetch it every time
> from internet). Local form never should be committed to repo. Will you provide some
> support/standardization on this?
I'm open to the idea, at least at the "standard policy" level. Let us
know which policy works best for you.
> * When I wrote .checkeol plugin and .bzrprop implementation there was raised question/suggestion
> about versioning of the config control. Do you have any proposal on this? I saw several times
> regrets re .bzrignore and absence of versioning for it.
I assume you mean versioning of the format instead of versioning of the
data, yes? There are many solutions including:
1. a format string on the top line.
2. a policy of maintaining upwards compatibility in combination with
branch "requirements" saying "requires bzr >= x.y.z" once you start
using features only supported in x.y.z.
I'm pretty sure poolie likes format strings in generated files but
dislikes them in user editable files.
> * Do you plan to move .bzrignore into .bzrmeta?
Not in the short term.
> * If I want to store metadata about verisoned files (binary flag for some files, encoding of content
> for text files, etc) does there will be standard names/locations/rules? Does builtin algorithme will
> use these rules, e.g. will diff use binary flag to avoid diffing multimegabytes non-text files? Is
> it will be implemented on the level of CLI (builtins.py) or in core modules?
I think a reasonable policy is for a plugin called bzr-xxx to use the
xxx namespace under .bzrmeta. In other words, it could use a single file
called xxx, a set of files called xxx-yyy or whatever makes sense to
it under a .bzrmeta/xxx/ directory. Plugins can them split up their
custo metadata based on what makes merging work best, e.g. a small text
file with some settings and a larger binary file if that works. We'll
probably need to add some hooks so plugins get better control over
merging their stuff in there.
Ian C.
More information about the bazaar
mailing list