Monday, January 18, 2010

One more popular version control system support: SourceGear Vault

Good news coming for SourceGear Vault users!

Did you hear about Eric Sink's impressive advertising campaign for Vault? Yeah, he's the one who invented the daring slogan "SourceSafe Must Die" (in advantage to Vault of course). Vault even contains a Handoff feature which makes it easier than ever to make the transition from Visual SourceSafe. They also show Vault advantages over Subversion.

So we decided to take a closer look at this version control tool and it's APIs. First offhand approach was to parse command line client output. Xml-based, well-stuctured, but still
insufficient (e.g. no simple way to determine whether object type is file or folder). Thus it was necessary to dig into the Java API (fortunately Vault provides the last and some .NET documentation appropriate for Java API as well).

For TeamCity specific purposes (collecting changes and patch building) we are using history and source retrieval API methods, which conduct developer through certain tricky cases (the delete operation is some kind of destructive and wipes out from history such principal operations as renaming).

Fortunately any of them had a workaround and TeamCity server does show all history operations and provides users with all possible information on transactions in the Change Log!

Here is the result - Vault support plugin early access program designed to work with TeamCity 5.0 and newer is open.

As always, any feedback will be highly appreciated.

Develop with pleasure!
The JetBrains TeamCity Team