[RFC] ALFS version control system
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
> 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