Discussion:
[TortoiseCVS] Connecting to a Unix CVS repository with Tortoise CVS
Robert Citek
2009-09-25 17:05:40 UTC
Permalink
Hello all,

After using CVS on Linux and Solaris, I'm now trying to get a CVS
client working on Windows XP using Tortoise CVS and having a heck of a
time.

Tortoise CVS info:

TortoiseCVS version 1.10.10
CVS client version:Concurrent Versions System (CVSNT) 2.5.03 (Scorpio)
Build 2382
SSH client version:TortoisePlink Release 0.56

These are the environment variables I use under *nix to connect to a
CVS server running on Solaris:

export CVS_RSH=ssh
export CVSROOT=:ext:foobar:/usr/local/cvsroot
export CVS_SERVER=/usr/local/bin/cvs

And under Linux and Solaris, they work like a charm, especially when
used with ssh keys.

Not so charming with Tortoise CVS. If I enter
:ext:foobar:/usr/local/cvsroot for the CVSROOT, Tortoise CVS fills in
:ext: for the Protocol, foobar for the Server, and /usr/local/cvsroot
for the Repository folder. If I then click on Fetch List, I get an
error. Here's the top portion of one error message:

<quote>
In C:\DOCUME~1\rcitek\LOCALS~1\Temp\: "C:\Program Files\CVSNT\cvs.exe"
-q -Q co -c
CVSROOT=:ext:***@foobar:/usr/local/cvsroot

cvs checkout: warning: unrecognized response `bash: cvs: command not
found' from cvs server
cvs [checkout aborted]: end of file from server (consult above messages if any)

Error, CVS operation failed

In C:\DOCUME~1\rcitek\LOCALS~1\Temp\: "C:\Program Files\CVSNT\cvs.exe"
-q -Q ls -q /
CVSROOT=:ext:***@foobar:/usr/local/cvsroot

cvs ls: warning: unrecognized response `bash: cvs: command not found'
from cvs server
cvs [ls aborted]: end of file from server (consult above messages if any)

Error, CVS operation failed
...
</quote>

The error message seem to suggest the server doesn't know where to
look for the cvs command. Unfortunately, I don't know where to enter
information for the CVS_SERVER variable. If I change the protocol
from ext to ssh and enter CVS_SERVER=/usr/local/bin/cvs for protocol
parameters, I get a different error:

<quote>
In C:\DOCUME~1\rcitek\LOCALS~1\Temp\: "C:\Program Files\CVSNT\cvs.exe"
-q -Q co -c
CVSROOT=:ssh;CVS_SERVER=/usr/local/bin/cvs:***@foobar:/usr/local/cvsroot

cvs checkout: Bad CVSROOT: Unknown keyword 'CVS_SERVER'
cvs [checkout aborted]: Bad CVSROOT.

Error, CVS operation failed

In C:\DOCUME~1\rcitek\LOCALS~1\Temp\: "C:\Program Files\CVSNT\cvs.exe"
-q -Q ls -q /
CVSROOT=:ssh;CVS_SERVER=/usr/local/bin/cvs:***@foobar:/usr/local/cvsroot

cvs ls: Bad CVSROOT: Unknown keyword 'CVS_SERVER'
cvs [ls aborted]: Bad CVSROOT.

Error, CVS operation failed
...
</quote>

Anyone seen something like this or can offer any suggestions?

Googling for the error messages hasn't been productive, yet, but will
keep trying.

Regards,
- Robert
Torsten Martinsen
2009-09-25 22:27:34 UTC
Permalink
Post by Robert Citek
These are the environment variables I use under *nix to connect to a
export CVS_RSH=ssh
export CVSROOT=:ext:foobar:/usr/local/cvsroot
export CVS_SERVER=/usr/local/bin/cvs
As you also have figured out, 'cvs' is not in the default search path on
the CVS server (I would argue that it should be, but never mind).

AFAICT, setting the CVS_SERVER environment variable should also work
using CVSNT on Windows. Try it.
Post by Robert Citek
And under Linux and Solaris, they work like a charm, especially when
used with ssh keys.
The error message seem to suggest the server doesn't know where to
look for the cvs command. Unfortunately, I don't know where to enter
information for the CVS_SERVER variable. If I change the protocol
from ext to ssh and enter CVS_SERVER=/usr/local/bin/cvs for protocol
Don't do that. CVS_SERVER and CVSROOT are two completely different things.

-Torsten
Arthur Barrett
2009-09-28 12:56:00 UTC
Permalink
Robert,
Subject: [TortoiseCVS] Connecting to a Unix CVS repository
with Tortoise CVS
Firstly: if your Unix CVS server is NOT CVSNT then you will miss out on
many features of TortoiseCVS, including merge tracking. CVSNT (of
course) runs on most unix and linux servers.

TortoiseCVS is a 'gui' your questions are really about the CVSNT client
used by TortoiseCVS to connect to your server (well also about how you
configure that client using TortoiseCVS - so both really...).
export CVS_RSH=ssh
export CVSROOT=:ext:foobar:/usr/local/cvsroot
The CVSNT client used by TortoiseCVS has an inbuild SSH protocol - so an
ssh wrapper is not required, ie:

CVSROOT=:ssh:***@foobar:/usr/local/cvsroot
Or
CVSROOT=:ssh:putty-session-name:/usr/local/cvsroot
export CVS_SERVER=/usr/local/bin/cvs
Yes - set this environment variable on the users PC in the 'system'
environment and then reboot and all should work.
information for the CVS_SERVER variable. If I change the protocol
from ext to ssh and enter CVS_SERVER=/usr/local/bin/cvs for protocol
That is not a valid protocol parameter, instead just use 'server'.

If the version of TortoiseCVS you are using has our mods then on the
TortoiseCVS Preferences 'tools' page there should simply be a parameter
for 'SSH cvs server' wher eyou can type in /usr/local/bin/cvs (the
default is just 'cvs').
<quote>
In C:\DOCUME~1\rcitek\LOCALS~1\Temp\: "C:\Program Files\CVSNT\cvs.exe"
-q -Q co -c
local/cvsroot
cvs checkout: Bad CVSROOT: Unknown keyword 'CVS_SERVER'
cvs [checkout aborted]: Bad CVSROOT.
Yes the error means what it says, this is what you want:
:ssh;server=/usr/local/bin/cvs:***@foobar:/usr/local/cvsroot


Regards,


Arthur Barrett

Loading...