bug-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Eclipse-compatible :extssh: method...


From: Mark D. Baushke
Subject: Re: Eclipse-compatible :extssh: method...
Date: Thu, 08 May 2003 01:31:32 -0700

Reading the Eclipse FAQ:

    
http://dev.eclipse.org/viewcvs/index.cgi/~checkout~/platform-vcm-home/docs/online/cvs_features2.0/cvs-faq.html

It seems that the Eclipse client has a built-in SSHv1 client and this is
what is normally used with :extssh: but this is NOT the only available
client.

So, if there is/was a desire to have a client that was plug-compatible
with the Eclipse extensions would a faithful interpretation be that we
would need to provide an SSHv1 client on Windows?

For myself, I would rather NOT see any additional life given to SSHv1.
That protocol should be dragged out into the wilderness and finally put
out of our misery. The fundamental SSHV1 protocol has been shown to be
flawed in a number of ways that SSHv2 is not.

Given the information in the FAQ, I would guess that if the users of 
Eclipse CVS were to set a global variable CVS_RSH=ssh and use :ext: as
the access method, it would just work and do the right thing for both
the Eclipse CVS client and standard CVS clients.

For users who need/want to use a standard CVS command-line client with
an Eclipse :extssh: workspace, it appears that specifying the
command-line repository switch

   cvs -d :ext:user@server/path/name

to override the default CVS/Root and $CVSROOT should work in cases where
:extssh: is being used.

If someone wants to suggest to the eclispse.org folks that they contact
us about access method extensions, that would be fine. I would be
interested in understanding their future directions.

However, it would be much better to have a full understanding of what it
means to say that cvs 'supports' a :extssh: transport. As eclipse.org
folks are the ones who have specified how :extssh: works, it would be
best to hear from them rather than putting something by the same name
into the field that does not have the same behavior.

For now, I do not see a pressing need to add support for a :extssh:
client. If you can show me in their documentation where they do not
support CVS_RSH=ssh with an :ext: client, then that might be a different
matter... it would be a bug in the Eclipse CVS client. :-)

More seriously, I do not have any a priori bias against extending the
CVS client (and server) in the name of compatibility. (One of my goals
is to try to get the *BSD versions of CVS to converge with the cvshome
version as much as possible.) I just want to make sure that any such
extension does not cause more harm than it provides value.

        Enjoy!
        -- Mark

Extracted Eclipse FAQ statements of possible interest.

| Getting Started
...
| 3. I already have a project checked out from CVS with the command-line
|    tool. How do I use it in Eclipse without having to check out the whole
|    project again?
| 
|    1. Create a project in the workspace.
|    2. File->Import, select File System, locate your files, click Finish.
|    3. Select the project in the Navigator or other view.
|    4. Context Menu->Team->Share Project...
|    5. The wizard should tell you that it found all the necessary
|       information. Click Finish.
| 
| 
|    Eclipse has now shared the project with the CVS repository.
...
| Server Issues
|
| 1. What server versions of CVS are supported by Eclipse?
|
|    Eclipse supports CVS version 1.11.1p1 or higher, running on a Linux
|    or UNIX server. Eclipse does not officially support running CVSNT
|    on a Windows server, but varied degrees of success have been
|    achieved. In this case, CVSNT version 1.11.1.1 or higher must be
|    used. There have also been some problems reported with HPUX and
|    Solaris version (see above).
|
| 2. Why isn't CVSNT supported?
| 
|    The reason CVSNT isn't supported is because traditionally its
|    development effort has been smaller and has lagged behind that of
|    CVS Linux, thus its quality tends to be of issue. Our experience is
|    that every new version of CVSNT has subtle bugs which are specific
|    to it, while as CVS Linux has been comparatively and consistently
|    solid. We fix CVSNT bugs where time permits but we don't include it
|    in our test passes for reasons above. In general those who are
|    'serious' about it choose CVS Linux for reliability (eg.
|    eclipse.org), which at that scale (e.g. corporate code storage)
|    warrants a dedicated machine anyway with an appropriately chosen
|    OS. If the community feels that a greater CVSNT effort is
|    warranted, then this would be an excellent avenue for community
|    contribution.
| 
| 3. Where can I get CVS for UNIX or Windows?
|
|    CVS for UNIX can be downloaded from http://www.cvshome.org. CVSNT
|    can be downloaded from http://www.cvsnt.org.
|
| 4. Where can I find documentation on CVS?
|
|    The CVS manual can be browsed online at
|    http://www.cvshome.org/docs/manual/. The CVS FAQ-O-Matic can be
|    found at http://ccvs.cvshome.org/fom/fom.cgi.
...

[Note: They also have information on trying to work around problems with
older CVS releases...]

...
| Using SSH with CVS
|
| 1. How do I use SSH to communicate with the server?
| 
| The pserver protocol sends passwords over the network in plaintext. Many
| people prefer to establish a secure connection using SSH. Eclipse
| supports two methods of connecting to CVS repositories using SSH.
| 
| To use the Eclipse's built-in SSH support, simply specify "extssh" as
| the connection method type when creating the repository connection.
| 
| To use SSH support from an external tool, you must:
| 
|    1. Specify "ext" as the connection method type when creating the
|       repository connection.
|  
|    2. Window->Preferences->Team->CVS->Ext Connection Method. On this
|       page, specify the name and location of your external ssh client. (For
|       example, "C:\plink.exe" or "/usr/local/bin/ssh"). Also specify the
|       name and location of the CVS binary on the server. The default value
|       is often correct.
| 
|    3. Ensure that you can log on to the server using the external SSH
|       tool without specifying a password.
| 
| Note: In Eclipse 2.1, you can also specify (on the Ext Connection Method
| preference page) the parameters to be passed to the SSH client,
| including the password.
|
| 2. What is the difference between ext and extssh?
| 
| The extssh connection method uses a built-in SSH client. The ext
| connection method allows you to specify an external SSH client to use.
| For extssh to work, the server must be running an SSH server with SSH1
| protocol compatibility. If extssh does not work, it is likely that the
| server is running only the SSH2 protocol. If this is the case, you
| must configure the ext connection method with an external SSH client.
...
| Compatibility Between CVS Command-line Client and Eclipse     top
|
| 1. Does Eclipse use [WinCVS|CVS command-line client] to talk to the
|    server?
|
|    No. Eclipse implements a CVS client in Java that talks directly to
|    the server using the documented CVS protocol. No external CVS
|    client is required.
|
| 2. The command-line CVS client stores information in CVS folders.
|    Does Eclipse do the same thing? If so, where are the folders?
|
|    Eclipse stores CVS sync information in CVS/ folders in the same
|    way as the command-line CVS client does. However, you rarely see
|    these folders within Eclipse. They are marked using a Core
|    facility called "team-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.
|
| 3. Is Eclipse compatible with the command-line CVS client?
|
|    Eclipse Team CVS stores its meta information in a format that is
|    compatible with the command-line CVS client. Thus you should be
|    able to use a CVS command line client against Eclipse workspace
|    files on disk. Please note that this support is experimental, and
|    you may run into problems. However, we are very interested in
|    making this work, so please report any bugs you find.
|
|    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.
|
|    You may encounter unexpected behaviour 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 should not cause any
|    lost work.
|
| 4. Can I import a project into Eclipse that was checked out using the
|    command line?
|
|    Yes you can. However, you may encounter errors from the builder
|    related to the copying of the CVS folders. This can have two
|    causes. The first is when the project is imported before the CVS
|    plugin is loaded. To avoid this problem, make sure you open one of
|    the CVS views before importing the project. The second is due to a
|    "race" on import between the CVS plugin and other plugins that
|    react to the import. If the CVS plugin wins the race, then the CVS
|    folders are hidden but if another plugin discovers the CVS folders
|    first, it may cause the workbench to "know" about them and perform
|    inappropriate actions on them. The best way to solve the problem
|    is to run a Team>Update on the project and then shutdown and
|    restart Eclipse (although closing and reopening the view in which
|    the CVS folders appear may work as well). If this fails, you may
|    need to check the projects out from your repository using Eclipse
|    instead of the command line client.
|
|    There is a plugin named org.eclipse.team.cvs.delta available on
|    the Development Resources page that loads on startup and ensures
|    that CVS folders are properly hidden. If you import CVS projects
|    often, you may want to use this plugin.
| 
| 5. Why does Eclipse corrupt my *.jar, *.zip, etc. files?
| 
|    This problem is caused by the keyword substitution mode assigned to
|    the file on the server. Any binary files must be marked as -kb. The
|    default for CVS is to mark unknown file types as text. CVS provides
|    cvswrappers and the cvs admin command to set file types.
| 
| 6. When I use the command-line CVS on my project, why do the CVS folders
|    sometimes appear in the Navigator View?
| 
|    There are some cases where CVS folders are not hidden from the UI as
|    the user 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. There is
|    also a plugin available here that will ensure that the CVS folders
|    are properly hidden even if the CVS plugin is not loaded.
| 
| 7. When I use the command-line CVS on my project, why go I get "resource
|    out of sync" errors?
| 
|    This occurs when files that are resources in Eclipse are 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 an "auto-refresh" plugin
|    available from Platform Core (click here to go to there).
...




reply via email to

[Prev in Thread] Current Thread [Next in Thread]