brett.rasmussen at twoedge.com
brett.rasmussen at twoedge.com
Mon Mar 7 14:27:59 MST 2005
>We're looking into possibly moving to something besides CVS for our
>version control. One we are looking into is GNU Arch. Unfortunately,
>it doesn't seem to be as well documented, and it seems it might be a bit
>immature at this point. It does seem to have some cool features though.
> Is anyone here using it, and if so, what are your thoughts?
I've been using arch for personal projects for a while now and find it a breath
of fresh air after using cvs over the years. Here are some thoughts:
While there are many version control systems these days that give benefits that
cvs doesn't (or won't, as I understand it) - like changes at the filesystem
level and not just internal to the file, symlinks, atomic commits, etc. - the
two things that make one or another stand out above the pack are 1) distributed
repositories and 2) smart merging. These two things turn the "version control
system" into a useful "collaborative development system" that also does version
control. Granted, cvs (or any "centralized repository" system) sort of does this
too, but I've always wanted something that did it much better.
With distributed repositories and a smart way of bringing them back together,
each developer can have his own versions that he's checking in and out as he
pleases without caring about syncing up with the main branch, and then trust
it'll come back together nicely later on. He can have multiple working copies in
asynchronous states, roll back to something he himself did without ever
committing to the main, etc. After using arch, I'll always feel handicapped
using any system that only allows for a single centralized repostiory.
Provided that there are some version control systems out there that handle all
the normal tasks just fine, *plus* do the distributed repositories and smart
merging, I recommend making those abilities a dealbreaker.
As for arch in general, I found it a little hard to get my brain around it
completely at first, but it was worth it. I think the repository naming
convention is cumbersome, and I recall thinking there were some options that you
had to provide a repository name for that I thought you really shouldn't have to
(I could be wrong about that). I think it is plenty mature to be used for
whatever you'd want to use it for. I thought the documentation was pretty anemic
until I found Tom Lords' tutorial, and that got me up to speed.
Those things aside, I've just loved using it. All of your normal cvs features,
plus those things we're starting to expect from a next-generation version
control system, are all there. And then some conveniences like moving a file in
the filesystem as well as the version control system all with one command. I
keep pushing my place of employment to adopt it and free us from the antiquated
and merely adequate (i.e. cvs). They all read plug, so I'm using this as one
more opportunity to wear down their resistance.
I also looked into darcs a little bit, and my feeling was that it did the
distributed repositories and merging very nicely. And I got the feeling its user
interface was simpler than arch's. But I felt it wasn't as mature or well
documented, and its merging algorithm gave me worries about the possibility of
extreme memory consumption.
More information about the PLUG