This past week I’ve
spent some time playing around with the 1.1 preview for Sourcegear’s Vault source control
system. After a few minutes I was impressed, after a few days I am in love with
it. 
 
A little background
on Vault might be in order. Vault is a full features Source Control system that
handles both CVS and VSS versioning styles. It is also their answer for
replacing Visual SourceSafe. They make this really easy by offering a complete
migration tool. It was written using C# and uses ASP.NET Web Services to connect
to its SQL Server database. All-in-all, very cool product.
 
The single most
important improvement over 1.0 is the integration with FogBUGZ. Although other SCC
providers can be integrated, Sourcegear is the only provider to build their
implementation directly into the product. Most other implementations are simply
hacks devised by FogBUGZ users to parse comments for the bug#. But with Vault
you get a dedicated field for this purpose, making it a lot less error
prone.
 
Integration
with FogBUGZ gives Vault an almost complete answer to the Borland StarTeam Task feature
(my all time favorite SCC feature). Tasks allow you to put any collection of
changes into a single context. For example, you could have a task “Fix error
when printing” and every checkout and checkin would happen within the context of
that task. This let you know what code was changed for any given task.
Now I can achieve
similar results with a combination of Vault & FogBUGZ. So when you want to
know exactly what was changed to fix your printing error, just look at FogBUGZ
and it will list the files (you can even run a diff against them from
your browser).
 
Why almost complete?
It is still missing one key aspect of a task based system. In a true task based
system, checkouts should be related to a task (not just the checkin). This
is only a minor issue for me and if you use a CVS style of versioning then
it isn’t an issue at all (being that you don’t checkout in the first place).
 
Most of the other
changes seem are what you would expect from a point release. There are some
noticeable performance improvements and I’m told the Visual SourceSafe import
has improved a lot. There is also a new feature called Keyword Expansion but I
have no earthy idea what that means.