Running the CVS command-line client outside of Eclipse

Compatibility

Because the Eclipse CVS plug-in stores its meta information in a format that is compatible with the command-line CVS client you should be able to use a CVS command line client against Eclipse workspace files on disk. The metadata is stored in CVS/ sub-directories but you rarely see them within Eclipse. They are marked as private which causes them to be hidden from view. If you open a (non-Eclipse) file explorer you will see that these directories and their contents appear on the file system.

Don't forget to refresh!

Whenever you use external tools to modify workspace files, you must perform a Refresh from within Eclipse to make the workspace aware of the changes. If you get a resource out of sync error in Eclipse it is a sign that there are resources in Eclipse that have been modified outside of Eclipse. One solution is to perform a refresh (available from a resource's popup menu) on any resources or projects that where modified outside of Eclipse. There is also a preference to refresh automatically.

Caveats

1. Deleted folders

You may encounter unexpected behavior when using the command-line CVS client in conjunction with deleted folders. Eclipse's CVS support keeps track of deleted folders and their contents so that, on the next synchronization, the Synchronize view can properly report on the changes. This information is kept outside of the CVS meta folder structure. This is because in CVS you normally inform the repository of deletions prior to deleting them locally, which is a different workflow than we like to support in the Synchronization view. Thus it is recommended that you do not use the command-line CVS client while you have pending deletions to commit. In some circumstances it could cause the Synchronize view to display incorrect contents, although it will not cause any lost work.

2. CVS directories appear in the workbench

When you use the command-line CVS the CVS folders can sometimes appear in one of the navigation views. There are some cases where CVS folders are not hidden from the UI as you would expect. For instance, CVS folders will appear if a user imports a CVS project into Eclipse before the CVS plug-in is loaded. To avoid this, open the CVS Repositories view (thus loading the CVS plug-in) before importing CVS projects into Eclipse.

3. The 'extssh' connection method

The extssh connection method is unique to Eclipse CVS and doesn't exist in the command-line CVS client. If you are using extssh to connect to a SSH2 repository and would like to use the command line client for some CVS operations you can configure the ext connection method to use extssh when inside Eclipse.

  1. Create a new repository location that uses the ext connection method. The repository path, host, and user should be identical to those in the extssh location.
  2. Open the Team > CVS > Ext Connection Method preference page.
  3. Enable Use another connection method type to connect and choose extssh.
  4. Now when you use the ext connection method inside Eclipse, extssh will be used instead of an external client.

Related tasks
Changing the properties of a CVS repository location
Creating a CVS repository location
Using projects checked out with another CVS tool