There are some threads on the mailing list about doing this, but they're not
exactly step-by-step tutorials. The best reference right now is the
scmtools/*.py files.

Basically, you'll create a subclass of SCMTool that does the following:

1) Grabs a file from a repository, given a file path and revision.
2) Provide a DiffParser subclass that handles pulling out filenames and
revisions and any other necessary data from a diff (most of the code for all
this is common, so you just hook into things -- see the other files for
3) If Vault has a concept of server-side changesets (you register a
changeset with a description, and other data, and the server always knows
what you have checked out on the client) then you'll need to implement

So the general model is that this code will have three classes:

1) VaultTool
2) VaultDiffParser
3) VaultClient

VaultTool will be a subclass of SCMTool and will be what Review Board talks

VaultDiffParser will be a subclass of DiffParser and will override functions
to parse revision info out of a diff.

VaultClient will be a wrapper around the command line tool, which
VaultClient will talk to.

Now, let's talk diffs. Many revision control systems provide tools that
generate diffs unsuitable for Review Board, and sometimes we have to work
around them. If vault's tool generates a diff containing revision
information for a file that can be used to pull data from the repository,
then we're good. If not, you'll need to implement this in post-review.
Basically, generate a custom diff, or post-process the generated diff, to
stuff revision information in. Then VaultDiffParser will parse that out.
You'll see this done for Perforce and many others in post-review.


Christian Hammond -
Review Board -
VMware, Inc. -

On Tue, Jul 28, 2009 at 1:42 PM, schuijo <> wrote:

> I couldn't locate a Python API for Vault, but they do have a command
> line tool.  Is there a document or thread detailing how to implement
> the interface?
> Thanks!
> On Jul 28, 3:00 pm, Christian Hammond <> wrote:
> > Not to my knowledge. Some have talked about wanting it, but I don't know
> if
> > anyone's working on it. If you'd like to work on it, we'll provide
> guidance.
> >
> > The only real requirement is that there's a command line tool or Python
> > for grabbing a file from a remote server. Everything else can be done by
> us.
> > It does help, though, if the tool/API can generate a suitable diff, or at
> > least one we can post-process.
> >
> > Christian
> >
> > --
> > Christian Hammond -
> > Review Board -
> > VMware, Inc. -
> >
> >
> >
> > On Tue, Jul 28, 2009 at 12:12 PM, schuijo <> wrote:
> >
> > > Is anyone working on support for Sourcegear's Vault?
> >
> > > Thanks!
> >

You received this message because you are subscribed to the Google Groups 
"reviewboard" group.
To post to this group, send email to
To unsubscribe from this group, send email to
For more options, visit this group at

Reply via email to