There are several ways to get the source for the Eclipse project. 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 [http://dev.eclipse.org/viewcvs/ CVS repository online] or use the source included in the [http://www.eclipse.org/downloads 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.

+

{{message|Note that CVS has been deprecated at eclipse.org. The deadline for migrating to [[Git]] is December 21/2012. Please see [http://www.eclipse.org/projects/scmcountdown.php SCM Countdown].}}

+

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 [http://dev.eclipse.org/viewcvs/ CVS repository online] or use the source included in the Eclipse Classic download featured on the [http://www.eclipse.org/downloads Eclipse downloads page]. 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 and 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 (in a patch attached to a bug report) for inclusion in the repository. Committers love to have bugs fixed for them!

−

== Anonymous CVS ==

+

To use anonymous access from Eclipse, simply paste the repository location url in the "CVS repositories" view:

−

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 project 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:

+

You can also create an anonymous CVS connection manually:

{| style="width:60%;" border="0" cellpadding="2"

{| style="width:60%;" border="0" cellpadding="2"

−

|+Anonymous CVS Connection Information

|-

|-

| '''Host''' || dev.eclipse.org

| '''Host''' || dev.eclipse.org

Line 33:

Line 61:

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).

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).

+

The repository is also made available for browsing at http://dev.eclipse.org/viewcvs/.

+

+

The Eclipse UI offers strong support for cvs checkout but you can also use the command line, e.g. you can checkout the plugin "org.eclipse.e4.ui.workbench3".

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

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

{| style="width:60%;" border="0" cellpadding="2"

{| style="width:60%;" border="0" cellpadding="2"

−

| '''/cvsroot/eclipse''' || The Eclipse platform

+

| '''/cvsroot/eclipse''' || The Eclipse platform project

|-

|-

| '''/cvsroot/tools''' || Tools project

| '''/cvsroot/tools''' || Tools project

|-

|-

−

| '''/cvsroot/webtools''' || Webtools project

+

| '''/cvsroot/webtools''' || Web Tools Platform project

|-

|-

−

| '''/cvsroot/birt''' || Birt project

+

| '''/cvsroot/birt''' || BIRT project

|-

|-

| '''/cvsroot/technology''' || Technology project

| '''/cvsroot/technology''' || Technology project

+

|-

+

| '''/cvsroot/rt''' || Runtime project

|-

|-

| '''/cvsroot/tptp''' || TPTP project

| '''/cvsroot/tptp''' || TPTP project

Line 76:

Line 111:

| '''/cvsroot/dsdp''' || DSDP project

| '''/cvsroot/dsdp''' || DSDP project

|-

|-

−

| '''/cvsroot/datatools''' || Datatools project

+

| '''/cvsroot/datatools''' || Data Tools project

|-

|-

| '''/cvsroot/stp''' || STP SOA tools project

| '''/cvsroot/stp''' || STP SOA tools project

+

|-

+

| '''/cvsroot/modeling''' || Modeling project

|-

|-

|}

|}

−

+

−

+

Other repository paths:

+

{| style="width:60%;" border="0" cellpadding="2"

+

| '''/cvsroot/org.eclipse''' || eclipse.org web sites

+

|-

+

|}

+

== Using Eclipse and CVS ==

== Using Eclipse and CVS ==

Line 94:

Line 136:

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

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

+

+

+

== git mirrors ==

+

+

The Eclipse CVS repositories are mirrored to git for read-only use. Please see the [http://dev.eclipse.org/git/ git repositories page].

== Other CVS Clients ==

== 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.

+

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 CVS repository. If you are using third party CVS clients, these resources may get out of date or inconsistent.

+

A checkout of a CVS repository created by Eclipse with the <tt>extssh</tt> protocol is, however, in nonstandard format. Not all CVS clients understand the reference to the <tt>extssh</tt> protocol in the <tt>CVS/Root</tt> files. In particular, the [http://www.nongnu.org/cvs/ Unix CVS client] ([http://ftp.gnu.org/non-gnu/cvs/ download]), in its versions 1.11.22 and 1.12.13, gives an error message <tt>Unknown method (`extssh') in CVSROOT.</tt> This is a problem for you if you want to monitor and update a checkout with both Eclipse and the command-line <tt>cvs</tt> program. To get a version of <tt>cvs</tt> that supports the <tt>extssh</tt> protocol notation, you need this [http://lists.gnu.org/archive/html/bug-cvs/2005-11/msg00058.html patch for the 1.11.x series] or this [http://lists.gnu.org/archive/html/bug-cvs/2008-01/msg00007.html patch for the 1.12.x series] or the newest sources from the <tt>cvs</tt> CVS. Alternatively, you can use distinct checkouts: one for use with Eclipse, and one for use with the command-line tool.

== CVS and firewalls ==

== CVS and firewalls ==

Line 113:

Line 161:

For anonymous CVS services:

For anonymous CVS services:

telnet proxy.eclipse.org 80

telnet proxy.eclipse.org 80

−

+

or

+

telnet pebbles.eclipse.org 443

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:

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:

Line 133:

Line 182:

[[Image:CVS_extssh_proxy_connection1.jpg]]

[[Image:CVS_extssh_proxy_connection1.jpg]]

+

+

== CVS tarball snapshots ==

+

+

We now provide weekly snapshots of the entire CVS repositories. These tarballed files are the raw RCS-encoded files (,v), intended for those who need the entire CVS repository. If you're only looking for the latest source, or a specific version, '''THIS IS NOT WHAT YOU WANT'''. Connect to our pserver CVS server (above) instead.

+

+

The snapshots are available on our [http://archive.eclipse.org/arch/ archives site].

Revision as of 17:21, 28 April 2012

Note that CVS has been deprecated at eclipse.org. The deadline for migrating to Git is December 21/2012. Please see SCM Countdown.

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 Classic download featured on the Eclipse downloads page. The download contains source zips which can be attached to jars in the SDK's Java tooling and used for browsing and debugging.

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 and 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 (in a patch attached to a bug report) for inclusion in the repository. Committers love to have bugs fixed for them!

To use anonymous access from Eclipse, simply paste the repository location url in the "CVS repositories" view:

:pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse

The Eclipse platform project

:pserver:anonymous@dev.eclipse.org:/cvsroot/tools

Tools project

:pserver:anonymous@dev.eclipse.org:/cvsroot/webtools

Web Tools Platform project

:pserver:anonymous@dev.eclipse.org:/cvsroot/birt

BIRT project

:pserver:anonymous@dev.eclipse.org:/cvsroot/technology

Technology project

:pserver:anonymous@dev.eclipse.org:/cvsroot/rt

Runtime project

:pserver:anonymous@dev.eclipse.org:/cvsroot/tptp

TPTP project

:pserver:anonymous@dev.eclipse.org:/cvsroot/dsdp

DSDP project

:pserver:anonymous@dev.eclipse.org:/cvsroot/datatools

Data Tools project

:pserver:anonymous@dev.eclipse.org:/cvsroot/stp

STP SOA tools project

:pserver:anonymous@dev.eclipse.org:/cvsroot/modeling

Modeling project

:pserver:anonymous@dev.eclipse.org:/cvsroot/mylyn

Mylyn project

:pserver:anonymous@dev.eclipse.org:/cvsroot/org.eclipse

eclipse.org web sites

You can also create an anonymous CVS connection manually:

Host

dev.eclipse.org

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

Host

dev.eclipse.org

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 project

/cvsroot/tools

Tools project

/cvsroot/webtools

Web Tools Platform project

/cvsroot/birt

BIRT project

/cvsroot/technology

Technology project

/cvsroot/rt

Runtime project

/cvsroot/tptp

TPTP project

/cvsroot/dsdp

DSDP project

/cvsroot/datatools

Data Tools project

/cvsroot/stp

STP SOA tools project

/cvsroot/modeling

Modeling project

Other repository paths:

/cvsroot/org.eclipse

eclipse.org web sites

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.

git mirrors

The Eclipse CVS repositories are mirrored to git for read-only use. Please see the git repositories page.

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 CVS repository. If you are using third party CVS clients, these resources may get out of date or inconsistent.

A checkout of a CVS repository created by Eclipse with the extssh protocol is, however, in nonstandard format. Not all CVS clients understand the reference to the extssh protocol in the CVS/Root files. In particular, the Unix CVS client (download), in its versions 1.11.22 and 1.12.13, gives an error message Unknown method (`extssh') in CVSROOT. This is a problem for you if you want to monitor and update a checkout with both Eclipse and the command-line cvs program. To get a version of cvs that supports the extssh protocol notation, you need this patch for the 1.11.x series or this patch for the 1.12.x series or the newest sources from the cvs CVS. Alternatively, you can use distinct checkouts: one for use with Eclipse, and one for use with the command-line tool.

CVS and firewalls

Since some developers are behind firewalls which block access to hosts on tcp port 22 (ssh) or cvs pserver (2401), eclipse.org 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 proxy.eclipse.org 443

For anonymous CVS services:

telnet proxy.eclipse.org 80
or
telnet pebbles.eclipse.org 443

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:

Anonymous CVS Setup using a Firewall

extssh CVS Setup using a Firewall

CVS tarball snapshots

We now provide weekly snapshots of the entire CVS repositories. These tarballed files are the raw RCS-encoded files (,v), intended for those who need the entire CVS repository. If you're only looking for the latest source, or a specific version, THIS IS NOT WHAT YOU WANT. Connect to our pserver CVS server (above) instead.