Other uses for tree versioning systems

Hans Ulrich Niedermann arch at n-dimensional.de
Thu Jun 9 14:03:40 BST 2005


Hi,

this post is to start a discussion about what bazaar-ng may do for the
world besides just making software development easier.

On http://sourcefrog.net/weblog/software/vc/bzr/bugzilla.html, Martin
writes that every bugzilla installation is basically a branch of the
project proper: You install the upstream software, adapt it for your
needs. You then continue to update the system from upstream from time
to time, preserving your modifications.

So far, so good. But this line of reasoning doesn't consider a very
important aspect about a software installation: Properly handling
"real" permissions.

Of course, bazaar-ng, arch and other versioning systems track the
execute bit, but for a proper software installation, you need more
control over the permissions: If you really want to go all the way
here, you'll have to store information about ownership, the full 12
permission bits, extended attributes, ACLs and even system specific
markers such as the SELinux attributes.

A versioning system which can handle permission infrastructure would
then also be open for another use, which has been requested from time
to time (from arch and bzr): Using the versioning system to maintain
system installations. You could have a "basic" branch with subbranches
for specific system classes, and more subbranches for the individual
boxes...

Note that this exceeds the function set of the well-known usual
"system imaging" software by far: Those cannot do fine-grained
versioning, branching, and merging of files.

I realize that such strict permission tracking is a nuisance in the
usual use case of day-to-day software development for which versioning
systems usually are designed, so there would have to be a flag or more
detailed settings describing how permissions are to be handled.

But people have been contemplating using a versioning tool for that
purpose again and again, so there definitely is a need in this area.

If that need can be addressed by just not discounting the idea
outright, and implementing it just requires to consequently finish the
basic design which has been there in the first place, I think this is
at least worth a try.

Uli




More information about the bazaar mailing list