[RFC] ALFS version control system

James Robertson jwrober at linuxfromscratch.org
Thu Apr 15 14:48:50 PDT 2004

Kevin P. Fleming wrote:
> A discussion occurred on lfs-dev two months (or so) ago regarding 
> version control systems, with the goal of switching the LFS project to 
> SVN from CVS. During that discussion, I brought up the possibility of 
> using BitKeeper, and while a number of people were open to the 
> possibility, some also expressed reservations (or outright denial) at 
> using a closed-source product.

I remember that.  I got the idea that a lot of folks were against using 
a closed source tool.  I also recall though that BK is what the kernel 
team uses right?  If it is ok with them, how can I argue!

> However, as I think about it more, and become more used to BitKeeper 
> myself, I find that it would be a very good fit for what the ALFS team 
> needs. Note that I am _not_ referring to what the LFS/BLFS teams need; 
> the ALFS team produces a different kind of products, and the users of 
> our products use them in a different way. I don't want to fracture the 
> community, and I don't even know if Gerard would be willing to let us 
> install BitKeeper on belgarath, but I think the issues warrant serious 
> discussion.
> A big problem with both CVS and SVN is that when you "checkout" a module 
> from the CVS repository, you get a checked-out copy, _not_ another 
> repository. This means that you cannot then clone a copy of that tree 
> and make changes and push them back to that tree, you can only send them 
> back to the master tree. It is also very difficult to make multiple 
> copies of a tree (for different changes you are working on) and merge 
> them together in an automated fashion.
> Let me give a simple example of where BitKeeper would be helpful in our 
> maintenance tasks... I am currently working on at least three different 
> areas in nALFS: logging, handler parsing/display, and various efficiency 
> improvements. As it stands today, I can only do those changes in a 
> single tree, or else the only way I can merge them together is to push 
> them up to the master CVS tree, even if the changes are not ready for 
> public consumption yet (this is why CVS HEAD is currently broken). 
> However, with BitKeeper I can do this:
> bk clone bk://bk.linuxfromscratch.org/ALFS/nALFS nALFS-logging
> bk clone bk://bk.linuxfromscratch.org/ALFS/nALFS nALFS-handlers
> bk clone bk://bk.linuxfromscratch.org/ALFS/nALFS nALFS-misc

OOOH, I could use this for the book(s) work as well.  I have a todo list 
but work serially because of this.  Now I can work asynchronously!  Woohoo.

> This gives me three trees I can work in, any of which can push changes 
> up to the master tree on belgarath, but more importantly, I can _clone_ 
> these trees and push changes between them locally for testing before I 
> send them up to the master tree. I can also pull changes from anyone 
> else's clone of the nALFS tree (if, for example, Jamie has some changes 
> he'd like me to play with) into any of my trees without them having to 
> be diff/patched or merged into the master tree.
> This is an immensely useful way to work, and I did it for a while, but 
> it was too hard to merge the changes back into CVS (plus the revision 
> history got lost), so I'm back to using CVS for now.
> There are also benefits to using BitKeeper to maintain local copies of 
> the LFS profiles, so that you can easily keep local changes and be able 
> to pull down updates from the master tree as well. This is also possible 
> with CVS, but with BitKeeper you could pull changes from someone else's 
> copy of the profile as well and merge them into your tree with only one 
> or two commands.
> I very much want to be able to use BitKeeper for these things, but I'm 
> hesitant to push very hard for it unless the ALFS community would find 
> it valuable. If there is resistance to installing BitKeeper on 
> belgarath, we could certainly set up an account on bkbits.net and use 
> that as our master working area for ALFS products, but I don't really 
> want to go that direction if we don't have to.

Gerard is pretty opened minded.  I have admin rights on belgarath, so if 
G gives permission, I can do the install and initial repo setup.  I'll 
need help as I know zero about BK.  Heck, I am still getting used to CVS!


More information about the alfs-discuss mailing list