I was a big fan of BitKeeper when it was free for open source
development, and I still miss a number of it's features. Oh well. At
this point however it's place in my heart has been replaced with
SVN and
further
SVK.
SVK allows for one of the things I miss the most, decentralized version
control. With SVN I was commonly frustrated when I wanted to push back
code but wasn't:
I commonly found myself in the position of having code that I was done
with, or having made some changes I was (at least relatively) sure
about and needing/wanting to commit. With the goal being to
move on to another change, modification or new function. Sometimes
being quite sure that what I really wanted to do was poke around but
not have to worry about taking a snapshot of the current code to get
back to it after I took a horribly wrong approach.
SVK fills that void, by using SVN as a base but keeping a local copy
and allowing mirroring and syncronization I can commit at will
effectively check pointing code whenever I think I have completed
something or when I know I am about to go off the rails with some wild
idea.
SVK also makes rapid development/testing easier, since the workspace in
SVK is a flat filesystem using rsync to push changes to a test system
is quite effective without the overhead of copying the local
.svn structure to the test host.
A bit more on mirroring particularly CVS later.
See also:
The SVK Wiki,
The
Subversion Project Page
Technorati Tags:
SVK,
SVN,
CVS,
SCM