On Mon Mar 12 16:57:09 2001, Leon Brocard wrote:
> David Cantrell sent the following bits through the ether:
> > But there are alternatives. Does anyone here have any comments on
> > Perforce or Clearcase? Needless to say, both companies have crap websites
> > with no useful documentation and a tonne of marketing arse.
> I've used Perforce previously, and it's pretty nice, if costly for a
> commercial project (free for open source, iirc). I've heard good
> things about Aegis which now has a Perl interface (cue Blackstar
> folks who use it) but I'm not sure about it - it seems too, um,
> different. On the whole I think CVS is Good Enough, and I hate RCS.
Aegis is more than version control, which is why we used it at BlackStar.
We were going to go with CVS at one stage, but we realised that our main problem
was not version control, but QA. Aegis enforces a peer-review policy for each
project. The process goes something like this:
1. an administrator creates a 'change' on the system: this basically involves
describing what needs to be done, and deciding what sort of testing is required
for this task.
2. a developer develops a change and writes tests for it, if required. In the
default change configuration the tests must pass with the new code and fail with
the old code. The developer cannot finish his work until this happens (or the
admin changes the test flags on the change).
3. a reviewer now looks at what the developer has changed. If he thinks it is
not totally insane, he can pass the change. He usually fails it: goto 2.
4. an integrator now merges the change into the code baseline. Before this can
happen, the tests must be run again, passing with the new code and failing with
the old. The integrator can fail the change for any other reason as well.
The version control part of Aegis can be any system you want, although the
default configuration uses tools that the Aegis author has written. If I were
to install aegis again, I would try to get it to work with CVS as a backend.
I mostly like it. The biggest problem I find is that the Aegis concept of
distributed development is not the same as mine. If all the developers have
access to the one central machine while they are working, things are fine. If I
want to work on my laptop on a plane, things get vary complicated. There is a
utility called 'aedist' that is intended to make this distribution work, but it
doesn't behave in a way that makes sense to me.