This area is an archive and is no longer actively maintained. Information found on this page is likely to be extremely out of date and therefore highly inaccurate. We recommend the Ximbiot - CVS Wiki for up-to-date information about CVS and its associtated tools.

If you do find anything useful on this page that is not yet in the Ximbiot - CVS Wiki and you have the time, please add it!

Version Control Interfaces

Version Control Interfaces

This page is a list of ways to interface a client (for example, a development environment or a special purpose script) to a version control system. Although we try to list the most popular ones, I'm sure that there are too many interfaces out there to list them all here.

RCS command line

Client implementations: TCCS, PRCS, Aegis, many others.

Version control implementations: RCS, probably others.

For more information: see the RCS manpages which we describe on our RCS page.

CVS command line

Client implementations: VC and pcl-cvs packages for Emacs, tkCVS, many others.

Version control implementations: CVS.

The AppleEvents interface supported by MacCVS is a slight variation on the CVS command line.

For more information: see the Cederqvist manual.

SCCS command line

Client implementations: TCCS, others.

Version control implementations: CSSC, Unix SCCS.

Standards: Single Unix Specification.

For more information: see our SCCS page.

CVS remote protocol

Client implementations: jCVS, MacCVSClient, CVS.

Version control implementations: CVS.

For more information: see our CVS Resources page.

SCC API

Many Windows development environments can interface to a version control system via an interface called the SCC API.

Client implementations from Microsoft, Powersoft, and Premia (for a more detailed list--including products and versions--see the windows-NT/SCC directory, mentioned below).

Version control implementations: Most commercial version control systems for Windows (e.g. TeamConnection). Not CVS (yet at least).

For more information: see our windows-NT/SCC directory (especially the README.txt and pubscc.h files). This directory contains the most detailed publically available specification for the SCC API that we are aware of (which is not to say we know of a really good written specification--public or not. Let me rephrase that: we don't advocate signing a non-disclosure agreement in exchange for an SCC API specification. Before doing that, please ask Cyclic if we can clarify aspects of the SCC API which you haven't been able to figure out). Also see Preston L. Bannister's SCC API page.

CVS_coworker

This is basically an internal interface for Preston L. Bannister's plug-in to interface CVS to the SCC API, but unlike the SCC API there is a published specification which intends to be complete. See CVS_coworker page. Based on the COM interprocess communication mechanism.

WEBDAV

The WEBDAV family of protocols and draft protocols standardize various aspects of version control and related functionality.

Client implementations: sitecopy is one. See webdav.org for a list of others.

Version control implementations: mod_dav module for Apache, Zope. See webdav.org for a list of others.

See our DAV page for more thoughts and links.

DOM-based interface(s)

The W3 consortium's Document Object Model (DOM) is an interface whereby scripting languages such as ECMAscript (javascript) can get access to data, nicely broken down into fields. Here is a page concerning some experimental code which makes CVS information available via DOM.

Visual Cafe API

Client implementations: Symantec's Visual Cafe product.

Version control implementations: Starbase, Intersolv, MKS, and CS-RCS.

For more information: The APIs come with the 2.1 Update from Symantec.

OLE Automation

Client implementations: sample code on OLE Automation web site below. Developer Studio 5.x (I think).

Version control implementations: SourceSafe. As far as I know, it is the only one.

For more information: See Microsoft's OLE Automation site (according to that page, the content has moved but I haven't tried to track it down).

CVS interface to RCS library

Right now this is just an internal API within CVS (and not a particularly clean one, yet, although it should be fixable without a radical overhaul). Here are some ideas about how it could evolve into something used for plugging together different components. It is probably most similar to the OLE Automation interface in terms of what level it is at, although I haven't done a careful comparison.

CodeWarrior IDE Version Control System API

Client implementations: CodeWarrior.

Version control implementations: CWCVS, Metrowerks has a plug-in which implements the version control side of this interface and the client side of the OLE Automation interface.

For more information: The specification for this interface is included with CodeWarrior, if memory serves. Or download from ftp://ftp.metrowerks.com/pub/updates/CWPRO4/CodeWarrior_Plugin_SDK.zip (1.4Mbytes).

[Cyclic Home]

Derek Price, CVS developer and technical editor of Essential CVS (Essentials line from O'Reilly Press) , and others offer consulting services and training through Ximbiot.