Apple Developer Connection
Advanced Search
Member Login Log In | Not a Member? Contact ADC

CVS

CVS is the Concurrent Versions System. It is a source control tool which allows multiple people to simultaneously view and edit code.

CVS keeps a history of all changes that have been made to the code, along with who made the change and when it was committed into the repository.

Note: Not all Apple open source projects are available via CVS.

Getting CVS

For Mac OS X users, the CVS client is available after installing the Developer Tools.

Unix users can obtain (command-line) CVS from the GNU Project.

Windows users can use WinCVS.

Getting Started

These instructions use the command-line version of CVS available on Mac OS X and other Unix systems. You must use CVS version 1.10 or later to access the sources.

There are two CVS repositories, one for projects covered by Apple's Public Source License (APSL), and another for software covered by other licenses.

APSL

In order to access the following APSL project,

  • StreamingServer

you must set your CVS_RSH and CVSROOT environment variables to the values provided below (see Figure 1).

Before accessing APSL sources, you must register your acceptance of the terms of the APSL.

When you access CVS you will be prompted for a password. Please enter your Apple ID and password separated by a ':' (e.g. "sombody@mac.com:secret").

Figure 1: Setting CVS environment in Bourne Shell for APSL projects

$ export CVSROOT=:ext:apsl@anoncvs.opensource.apple.com:/cvs/apsl
$ export CVS_RSH=ssh
$ cvs co StreamingServer
apsl@anoncvs.opensource.apple.com's password: somebody@mac.com:secret

Other projects

In order to access the following projects,

  • JavaScriptCore
  • LayoutTests
  • SVGSupport
  • WebCore
  • WebKit
  • WebKitLibraries
  • WebKitTools
  • apache_mod_bonjour
  • cups
  • cygnus
  • efax
  • gcc
  • gcc2
  • gcc3
  • gdb
  • gimp-print
  • keymgr
  • mDNSResponder
  • tcl

you must set your CVSROOT environment variable to the value provided below (see Figure 2).

Use anonymous as the password for anonymous CVS access.

CVS will cache your password in ~/.cvspass, so you will only need to run cvs login once.

Figure 2: Setting CVS environment in Bourne Shell for other projects

$ export CVSROOT=:pserver:anonymous@anoncvs.opensource.apple.com:/cvs/root
$ cvs login
Logging in to :pserver:anonymous@anoncvs.opensource.apple.com:2401/cvs/root
CVS password: anonymous
$ cvs co WebKitTools

Configuration

We recommend setting the following default options for CVS by creating a .cvsrc file in your home directory.

Figure 3: Recommended ~/.cvsrc settings

checkout -P
update -P -d
diff -u -d -b -w
rdiff -u
cvs -z3

Troubleshooting tips

Should you have trouble accessing CVS, here are a couple of things to check.
  • Can't find Darwin (or another project) in CVS

    Apple separates projects into two main categories, on-cycle and off-cycle.

    Source for an on-cycle project is published after commercial releases of Mac OS X software. These sources are not available in CVS, but may be found here.

    Source for an off-cycle project may be published at more frequent intervals than commercial releases, and only these projects are available via CVS.

  • Cannot connect to the anoncvs server

    Is the CVSROOT environment variable properly set?

    Check that your network or personal firewall is allowing outgoing ssh (port 22) or cvspserver (port 2401) connections.

  • Authorization failures

    Does the CVSROOT environment variable have the proper username (apsl)?

    Is the right password being used to log in?

    Note that your Apple ID and password are case sensitive.

  • "Cannot create lock," permission errors, or other errors

    Please contact opensource@apple.com with a description of what you were doing and the exact text of the error message.

For More Information

Posted: 2005-11-07