Andrew Channels Dexter Pinion

Wherein I write some stuff that you may like to read. Or not, its up to you really.

July 01, 2003

CVS Trauma

At work we have our CVS repository on a Windows2000 machine (running CVSNT).

Being hardcore I don't use WinCVS but prove my manliness with the command line client that comes with Cygwin. Except it stopped working yesterday when I did my latest refresh of Cygwin.

It transpires that the problem was in my definition of CVSROOT. I don't think the validation rules have changed, rather that the updated version of CVS I picked up yesterday enforces them more effectively.

Anyway, I looked and looked and couldn't find any reference to the correct way to connect to a CVSNT repository from a Unix client. Until I stumbled across this mailing list posting.

To connect to a CVSNT repository on a Windows server from an ordinary CVS client the form is;

cvs -d:pserver:[username]@[server name]:/c//[directory name] [command]

The important thing to note is the use of the single / between the : and the drive letter and the double / between the drive letter and the directory name.

Posted by Andy Todd at July 01, 2003 05:46 PM

Comments

Oh no, cygwin is not enough to prove manliness. You need to SSH to a unix host (you want to prove yourself, right? then you got to have unix account), use CVS command line there (using -d: is a right way. If you set CVS_ROOT in your shell, that means you work on only one repository usually - not man enough :-)). Then you maintain your sandbox on unix. Use Samba to mount it on your Win2k machine.

Anyway, I had the same issue last year. I believe I got it figured out from the same mailing list post too. Soon, we got sensible and moved our repository to an old Pentium75 server running linux.

Posted by: Babu on July 1, 2003 07:34 PM

Yes, the old drive letter trick isn't well documented. However, it's widely regarded as a "hack" to run a CVS server on NT anyway - performance and reliability certainly aren't enhanced by the exercise. Sadly, that's exactly what some people deliberately decide to do anyway.

Posted by: Paul Boddie on July 2, 2003 12:59 PM

Your tip on accessing a winblows CVS server from a "unix" platform might actually only work under cygwin. i'm having a terrible time trying to connect to a winnt server from linux. i tried your trick and used ":pserver:user@host:/c://cvs" and i just get a different error:

/c://cvs: no such repository

yes, the repository exists, i copied the string from a working wincvs client and added the extra slashes.

still looking for an answer...

Posted by: Harry Slaughter on July 30, 2003 06:23 PM

Harry,

I believe you may have a little more luck if, instead of

":pserver:user@host:/c://cvs"

You use;

":pserver:user@host:/c//cvs"

The second colon is what causes the trouble I believe.

Posted by: Andy Todd on July 31, 2003 12:13 PM