Eclipse, CVS and putty

I’m a really big fan of Eclipse. This Java-IDE has many great features I have never come across in other IDEs so far. The new context based syntax-highlighting comes to mind (it analyzes your sourcecode and can – for example distinguish between local variables and constants)

Actually, it’s only because of Eclipse that I now can write fairly good Java code. The thing was incredibly helpful during my first struggle to get something to work, so I made quite some progress in a quite small timeframe.

There is one thing though, I never got to work: CVS integration

I’m using CVS strictly over SSH, with the help of Putty, Pageant and Public Key authentication. Despite the fact I’ve entered the correct settings for the “ext” method (using Puttys plink.exe as CVS_RSH) in Eclipse, it never worked (it failed with various messages)

Of course there is the new extssh-Method, but this is non-standard. Where I can access the CVS-Server using extssh from eclipse, it does not really help because then the command line tools and TortoiseCVS stop working because they don’t understand extssh

Finally I found the solution: Even though it doesn’t make sense, you have to enter “cvs” under CVS_SERVER in the CVS-Settings. I don’t know why. It’s just that way. So to use Eclipse together with the command line tools and Tortoise to access the CVS-Repository from the same working copy, this is what you have to enter under Window/Preferences/Team/CVS/Ext Connection Method:

CVS_RSH yourfullpathtoplink.exe
Parameters {user}@{host}
CVS_SERVER cvs

Then you add a repository in the repository-view using the following settings:

Host your.host.name
Repository path /path/to/repos
User username
Password empty
Connection type ext

Before you finally click “Finish”, open up a command line window and log in to your CVS-Server using plink:

plink user@host

Maybe you are asked to store the host key in plinks database. Do so. Then make sure that you can login without a Password-Request popping up (Pageant must be running, your key must be loaded and authorized on the server). If that works, click “Finish” in Eclipse.