Veracity is a Distributed Version Control System with a lot more. Its new capabilities bring the distributed development concept forward to meet the needs of software development teams with tough challenges.

 

Decentralized Database

Veracity goes beyond versioning of directories and files to provide management of records and fields, with full support for pushing, pulling and merging database changesets, just like source tree changesets.

 

Veracity’s decentralized, template-driven database is used for all kinds of administrative data, including user accounts, tags, commit messages, and history. This database is also the platform on which we are building features like work item tracking.

 

Veracity is bringing the DVCS model to the other stuff that software teams use.

 

User accounts

Existing DVCS tools have no real concept of user accounts. Enterprise customers need robust administration features like auditing and permissions. Veracity supports these features with a user system built on its distributed database engine.

Veracity by SourceGear

 

Pluggable storage layers

Veracity wraps all the actual storage of a repository in an API. This allows different implementations to offer different tradeoffs. For example, an organization may want to use an enterprise SQL database to store repository data on a central server, while developer desktop machines may use a simpler filesystem-oriented storage module.

 

Hash functions

Just as with Mercurial and Git, Veracity identifies all repository objects using a cryptographic hash of the contents. Veracity supports SHA1 like current tools, but is ready for the future with full support for SHA2 and Skein, at 256 or even 512 bits.

 

File locks

A common complaint about current DVCS tools is poor support for binary files which cannot be automatically merged. In these cases, centralized tools with exclusive file locks are still the right answer. Veracity will address this weakness with an implementation that provides optional exclusive locks when a network connection is available and degrades gracefully in disconnected scenarios.

 

Robust tracking for rename

Like Bazaar, Veracity assigns every repository object an ID which remains constant when the object is renamed or moved to a different path. This handles the situation where a developer changes both the contents of a file and its path in the same transaction, and is a critical feature for robust merge operations.

 

Cross-Platform C

From the beginning, we wanted to make it easy to integrate Veracity into all kinds of other systems on a wide variety of platforms. So we wrote everything in C, with Windows, MacOS and Linux all on equal footing. We love Python too, but C is a lowest common denominator that can be ported or integrated everywhere we need to go.

 

Apache License v2

Current DVCS tools do not yet have much penetration with enterprise customers. We chose the Apache License v2 (instead of the GPL) because we wanted there to be no obstacles for Veracity to be adopted in commercial and enterprise scenarios.

 

 

But it’s not ready yet. We are dogfooding Veracity here at SourceGear, but as of July 2010, it’s really not ready yet for anybody else to use. We are making the source available for enthusiasts who want to follow our progress and participate. But if you need something that is ready to use now, Mercurial, Git and Bazaar offer you three great choices.