Skip to main content
Jump to: navigation, search

CVS Howto

Revision as of 11:24, 16 March 2006 by Droy (Talk | contribs)

There are several ways to get the source for the Eclipse projects. Most developers are actually developing their own plug-ins and are interested in browsing the Eclipse source and using it during debugging. For this, you can either browse the CVS repository online or use the source included in the Eclipse SDK download. The download contains source zips which can be attached to jars in the SDK's Java tooling and used for browsing and debugging.

Repository locations

As of September 21, 2005, there are new paths to access the Eclipse CVS repositories. Please update your CVS clients to reflect these new paths. Paths are listed below, in the CVS Repository Paths section.

Anonymous CVS

For people actually want to change Eclipse code but who do not have the required commit rights in that area, all elements of the Eclipse projects are available via anonymous access to the development CVS repository. Using anonymous access you can checkout code, modify it locally but cannot write it back to the repository. This is handy if you would like to fix a bug or add a feature. Get the code via anonymous access, do your work and then pass the work on to a committer for inclusion in the repository. Committers love to have bugs fixed for them!

To use anonymous access from a running Eclipse platform, simply go to a Repository View and add a new CVS repository location. Use the following information to connect:

Anonymous CVS Connection Information
Repository Paths (See "Repository paths", below)
User anonymous
Password (leave blank)
Connection Type pserver

From there you can browse the repository and add projects to your workspace. If you do some changes that you'd like to contribute, rather than committing the changes to the repository (which you can't do as the anonymous user), you should save a diff file and either mail it to a committer or post it on the relevant mailing list. Note that large files cannnot be posted to the mailing lists.

Note that the pserver protocol is only available to the anonymous user. All committers must use SSH to access the CVS repository if they wish to use their user id and password (i.e., if they want to write to the repository).

Committer access to CVS

Developers with commit rights have individual user ids and passwords in the Eclipse project development repository. As a committer you can use SSH (Secure SHell) to connect to the CVS repository as follows. Go to a Repository View and add a new CVS repository location. When asked for the repository location enter the following:

Committer CVS Connection Information
Repository Paths (See "Repository paths", below)
User (your committer user id, supplied by the webmaster)
Password (your committer password)
Connection Type extssh

Once your information is authenticated, you can browse the repository and add projects to your workspace. If you do some changes that you'd like to contribute, after testing and ensuring that you have followed the contribution guidelines, you are free to release your changes to the repository. Of course, you can only release changes to projects for which you have commit rights.

Note that you can use the SSH protocol and your Eclipse user id to access projects for which you are not a committer but you will not be able to release changes.

CVS Repository Paths

Use the following repository paths to connect to the Eclipse projects:

/cvsroot/eclipse The Eclipse platform
/cvsroot/tools Tools project
/cvsroot/webtools Webtools project
/cvsroot/birt Birt project
/cvsroot/technology Technology project
/cvsroot/tptp TPTP project
/cvsroot/dsdp DSDP project
/cvsroot/datatools Datatools project
/cvsroot/stp STP SOA tools project

Using Eclipse and CVS

In general, each Eclipse plug-in corresponds to a CVS module of the same name in the repository. These modules are further grouped using CVS module aliases. A module alias is a virtual module which stands in for several other modules. In the Eclipse repository, each component has a module alias which references the plug-in projects/modules which are part of the component. For example, the Platform's Core component has an alias called platform-core which references all of the Core's plug-in projects/modules (e.g., org.eclipse.core.runtime, org.eclipse.core.resourses,...). There are also module aliases for each component's tests and examples. The module aliases have been elided if there is nothing to reference (e.g, if there are no examples). The CVS support in Eclipse supports loading and filtering using these module aliases.

Most open source CVS repositories do not enable the history file mechanism for recording repository operations since it is too costly. As a result, users must explicitly know and state the CVS tags they wish to use when looking at the repository. Eclipse manifests CVS tags in two ways; as version labels and as stream (CVS branch) labels. Rather than having to remember and manually enter these values, Eclipse can discover them for you.

Users can choose a specific file in the repository and then ask Eclipse to add all of the version or stream labels on that file to the repository explorer's view. Users can then select a stream or version and navigate to other resources which are simiarly tagged.

The auto-discovery mechanism can be costly in some situations so Eclipse also supports the explicit declaration of version and stream (CVS branch) tags. Again using the repository explorer users can define a project version label or a stream name (both of which correspond to CVS tags). The repository explorer will then use these as the context in which to browse the repository.

For more details on these mechanisms, please see the online help documentation included in the Eclipse SDK.

Other CVS Clients

The Eclipse CVS repository is a standard CVS implementation. As such, you can use just about any CVS client to read/write resources from/to the repository. There are however a number of files maintained in the workspace which contain Eclipse metadata (e.g., project definitions, Java classpath information). These files are written locally by Eclipse tools and then persisted in the the CVS repository. If you are using third party CVS clients, these resources may get out of date or inconsistent.

CVS and firewalls

Since some developers are behind firewalls which block access to hosts on tcp port 22 (ssh) or cvs pserver (2401), provides a redirection host which may be used in some cases to work around these restrictions. This host may be used if your firewall passes traffic on ports 80 or 443. This host cannot be used if you are behind a transparent proxy.

Host access may be tested in the following manner, by using a command prompt (Start/Run/CMD on Windows)

For committer extssh access:

   telnet 443 

For anonymous CVS services:

   telnet 80  

A successful connection will look similar to the following; any connection log that shows a mangled response or doesn't allow a connection would be considered a failure:

   bash-3.00$ telnet 80
   Connected to
   Escape character is '^]'.

Anonymous CVS Setup using a Firewall

CVS pserver proxy connection.jpg

extssh CVS Setup using a Firewall

CVS extssh proxy connection1.jpg

Back to the top