Checkouts? Or just light bound branches?
Denys Duchier
duchier at ps.uni-sb.de
Fri Jan 27 21:31:15 GMT 2006
Aaron Bentley <aaron.bentley at utoronto.ca> writes:
> Denys Duchier wrote:
>> I probably have missed something yet again, but i really want a checkout to have
>> a workingtree_location because I want the ability for multiple checkouts to have
>> overlapping workingtrees.
>
> You'll have to explain what you mean. On the face of it, it sounds like
> you want to have a single directory in which some of the files are from
> one branch, and some of the files are from another. This is not
> something we were planning on doing (to put it mildly).
I did give an example of what I had in mind in an earlier message: I would like
to be able to have under revision-control certain system files. However,
certain groups of system files belong to logically distinct branches. For
example, I have a "logical" etc-update branch which ought to control 2 files:
/usr/lib/portage/bin/etc-update
/etc/etc-update.conf
It would be extremely convenient if I could have a number of branches, all
checked out at the root ("/"), and controlling different sets of files under
that root.
I am well aware that there are other (less direct) ways of achieving the same
thing, but it would be great if bzr could support this way of working directly,
and I believe it can do so easily.
The way I suggested earlier would be to have a checkout/branch directory (I
really am not sure what I am supposed to call it anymore), for example under
~/src/etc-update, that would have a "state variable" pointing to its
corresponding workingtree location, namely /.
In this fashion, I could easily modify the files in place, then go to
~/src/etc-update and commit those modifs.
I could also have two distinct branches both thinking they are in control of the
same files. You are probably thinking: "this is crazy!", but it is not. There
are certain patterns of work with Gentoo that would be facilitated this way.
For example, when updating portage, the etc-update and etc-update.conf files
will usually be overwritten. I would then go to ~/src/etc-update.orig (a branch
tracking the Gentoo line of development for these files) and commit the mods (if
any). I could then revert and then merge those mods into my branch, namely
~/src/etc-update, which as a side-effect would update the system files (i.e. in
the working tree) to my branch updated with the mainline fixes.
--Denys
More information about the bazaar
mailing list