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.
- 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.
- Open the
Team > CVS > Ext Connection Method
preference page.
- Enable Use another connection method type to connect and
choose extssh.
- Now when you use the ext connection method inside Eclipse, extssh
will be used instead of an external client.
Changing the properties of a CVS repository location
Creating a CVS repository location
Using projects checked out with another CVS tool