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]](../cyclic-pages/cyclichome.gif)
![[ Valid XHTML 1.0! ]](/branding/w3c-valid-xhtml10-44x16.png)
![[ Valid CSS! ]](/branding/w3c-valid-css-44x16.png)
