Veracity, a New DVCS Based on a Distributed Database
Veracity is a DVCS that can be installed on Windows, Mac, and Linux, and uses a distributed database for its repository.
Veracity is a relatively new Distributed Version Control System (DVCS) that has been in tests for more than a year, and now version 0.9.1 made its debut as “ready to use.” Veracity is similar to Git or Mercurial in many ways, but there are some differences. We talked to Eric Sink, the founder of SourceGear, the company behind Veracity, and he said that their DVCS supports a decentralized database:
A unique feature of Veracity is its "decentralized database". Most version control tools are designed to manage data which is file system-oriented, directories and files. Veracity can do this as well, but it also has the ability to manage data which is database-oriented, records and fields.
Just as it does with file system data, Veracity's decentralized database keeps the full history of the database. Every version of every record is retained in history, with log information about who made the change and when. Veracity also supports push and pull of "database changesets", including the ability to automatically merge (at the level of a record or of a field) and resolve constraint violations.
This capability is what allows this database to be "decentralized".
Users can choose various databases for their Veracity repository, as Sink explains:
Veracity communicates with repository instances through an API which hides all the details of how things are stored. The intent here is that Veracity users can choose how their repository is stored. The current version of Veracity supports only one of these "repository storage plugins", called FS3. This implementation stores blob data in files (up to 1 GB of blobs in each data file) and uses a SQLite database to keep track of where everything is.
We have prototypes of storage layers which keep everything in an enterprise SQL database. These kinds of things will be available from SourceGear in the future. Some of them may be proprietary rather than open source.
Veracity supports clone/push/pull between repository instances even if those instances are running different implementations of the storage layer. So for example, it would be possible for a Veracity team to run a central server which keeps a repository instance in an Oracle database (if/when we have an Oracle implementation) while configuring all the developer desktops to use FS3.
There is still work to do, such as integrating it with Visual Studio and Eclipse, adding fast import/export, sub-modules, wiki and others, but Sink says Veracity’s code is stable enough that future versions will be compatible with the current repository. Version 1.0 will be released during OSCON 2011 taking place in a week.
As a note, SourceGear created Vault, a Windows-centric version control system designed to replace Microsoft’s SourceSafe.
what's the benefit over git or hg?
"Just as it does with file system data, Veracity's decentralized database keeps the full history of the database. Every version of every record is retained in history, with log information about who made the change and when. Veracity also supports push and pull of "database changesets", including the ability to automatically merge (at the level of a record or of a field) and resolve constraint violations."
This "late Beta" release seems squarely aimed at non-Windows / VS users. Take a look at what's needed to compile it on Visual Studio. Not terribly hard but some unexpected hoops to jump through, like loading Cygwin! I hope that version 1, just works with Visual Studio.
I have moved all of my systems from Hg to fossil and it is great.
There are lots of innovative options out there.
Re: what's the benefit over git or hg?
- Integrated bug tracking. This solve the common issue of de-synchronization between what's in the repository and what's described in the bug tracker.
- File locking. Might sounds like an heresy at first glance, but is VERY useful when working on assets that cannot be merged.
- Focus on large binaries from the start. While it is not mentioned in this article nor in the chart, it is something that was one of their key feature when they started Veracity. It is somehow related with the file locking, as these kind of feature are what is preventing Hg, git, bazaar on any other current DVCS to be popular in some areas, like game development.