Thursday, August 18, 2005

RAD/RSA/Eclipse and CVSNT

A colleague in ISSW was having problems getting Rational Software Architect v6.0.0.1 to talk to CVSNT.

Some people talk of me as "a CVS guru", although I'm not sure I'd go that far.

There has been a long-running issue with Eclipse not fully supporting CVSNT (or maybe it is the other way round!). CVSNT is a fork of the UNIX CVS code, integrated more closely with Windows, and it doesn't quite work the same as vanilla CVS. When an issue arose way back in the mists of time between Eclipse and CVSNT, the Eclipse project decided to stop supporting CVSNT. I'm not claiming to know the history here, but I do know that there were Eclipse bugs raised - go have a look in bugzilla at

So we are now in a situation where, if you try to connect Eclipse 3.x (RAD, RSA etc.) to a CVSNT repository, you get told "CVSNT does not always properly communicate resource paths in this mode resuliting in failure of some specialized Eclipse CVS operations. The use of a repository prefix should be disabled if the full functionality of the Eclipse CVS client is desired."

However - it can be made to work - and I've personally found no issues.
There are three options (listed here in decreasing order of difficulty, so go with option 3 and work backwards!)

  1. Obtain one of the earlier version of CVSNT. Until recently, I used 2.0.51d. There are archived versions at - but it looks like the earliest version now available is 2.0.58. If you run one of these versions you will still see the error, but there is a CVSNT option "Act like a Unix server". If you set that option, the error will disappear.

  2. Instead of using the "Act like a Unix server" option, you can set the Repository name and location (both fields) to have the drive prefix (like "C:/cvsrepository"). CVSNT will issue a warning, but Eclipse will work fine. I believe that this works in both 2.0.51 and the latest,

  3. Set the "Respond as cvs 1.11.2 to version request" option on the Compatibility tab in CVSNT You should also ensure that "Emulate '-n checkout' bug" is set (which it usually is by default).

Hope that this information helps someone out there.