[MUD-Dev] [TECH][TOOLS] SCM systems

ceo ceo at grexengine.com
Fri Apr 2 11:36:34 CEST 2004


Erik Bethke wrote:
> From: ceo <ceo at grexengine.com>

>> Has anyone tried Vesta? I'd not heard of it until today (someone
>> sent me a link from the upcoming CodeCon), but it looks pretty
>> good.

FYI, we took the plunge and have now moved all our source code,
tools, etc over to Vesta, and the investment of time has paid off
wonderfully. (we only recently completed the move, and there are
still some tweaks we're doing to streamline the config).

Even though we were the first outfit to use it for Java (up until
then it was only being used for C, C++, Verilog, and a few other
languages), which meant I had to create all of java's build-tools
and compiler etc within vesta's functional language.

Now, with a command line like this, from bash:

    $ vmake -shipto /mnt/floppy/

the vesta server goes off and recompiles all the sources for the
current package, using a distributed build farm, and building
different copies for different OS's using specific slave build
machines. As part of compilation, it first resolves all dependencies
and recompiles them, and repackages them, but... everything goes in
a site-wide cache, so that if any version of any package has been
compiled recently by anyone else, I get an instant cache-hit on it
(vesta uses a functional lang for you to specify builds, and makes
use of the "side-effect free" behaviour to track all compile-time
and build-time dependencies and record them in the cache as part of
the cache-key).

We now have some 30-odd packages specified more precisely and yet
more clearly than makefiles in about 1/10th the complexity, using
the fn-lang. And it even allows blocks of imperative statements, so
it hasn't screwed too badly with the heads of those who've never
done fn-programming before :).

Every developer can also 100% reliably reproduce every build we've
ever done - it's impossible to have a compile or build dependency on
a missing or upgraded / downgraded library, because the SCM does the
building itself, and applies full version control to all the tools
(hence it was non-trivial to get java into it: I had to coax Sun's
JVM and compiler and packager etc into working inside a virtual FS
within the SCM).

The other really compelling feature for us was the fact that it NFS
mounts the repository, so you can browse everything from the comfort
of BASH without having to explicitly export/checkout/etc things
before looking at them or using them.

Although I didn't expect it, it also turns out to be quite a relief
that we have a single system backending *everything* in the build
process (source, builds, docs, packaging, etc etc). I'd got used to
the suite of tools we used to manage things, and could use them
automatically without thinking, but as soon as I didn't need to I
realised that "on automatic" had still been energy-sapping. Nice to
know too that everything lives in a single versioning system.

PS our learning process with vesta has also increased the number of
questions in the official FAQ by a factor of ten :). It was pretty
easy stuff, but we were making a lot of silly mistakes. So, if
anyone else wants to start using it, the way is somewhat more
idiot-proof now.

> In response to this post we went of and did a lot of
> investigating...  Vesta did not have enough users for us to feel
> comfortable... So instead we are now using:

A very good point. Although *for us* the pedigree (DEC, Compaq, and
Intel m-processor labs used it for their m-processor development, on
teams with hundreds of people each) balanced that out; personally
I'd actually take a tool developed by those companies to manage
their *source* any day over an open-source project used by thousands
(for all their advantages, CVS and Apache spring to mind as
mass-user products that for many many years suffered poor overall
quality).

One project being wrecked by CVS was one too many (actually, I've
had two other projects partially destroyed by CVS; never ever
again!).

>   Subversion: http://subversion.tigris.org/

> It is the long-anticipated wholly-new written answer to CVS.  It
> has a nice clean Windows client as well.  Free, open source.

It seems most people we talk to who are considering an SCM move are
choosing SV these days. Apart from the lack of vesta's advanced
features, we also had some concerns about code quality. Tigris's
java software always has been and still is abominably poor (even
after many releases much of it simply doesn't work at all), giving
us pause for thought on using any of their other projects (although
I'm aware there's a significant difference between the quality of
their C and Java projects).

Anyway, I've not heard anything bad about SV yet form the people I
know who are using it, so I expecti it will work extremely well for
you.

> ...then moved to Perforce, and we were happy with it.  But in
> setting up our Korean studio (where I am living now) I didn't feel
> like plunking down another $20k in license fees...

Ditto. P4 is undeniably fine, but IMHO outrageously highly priced,
for what it is. Especially when SV and vesta are both free!

Adam M
_______________________________________________
MUD-Dev mailing list
MUD-Dev at kanga.nu
https://www.kanga.nu/lists/listinfo/mud-dev



More information about the mud-dev-archive mailing list