CVS protocol error with Xcode 3

Dear all,

I'm having a hard time getting Xcode talk to our CVS repository. While everything works fine at command line level, I get the following error from within Xcode 3:

*cvs [server aborted]: protocol error: directory '/E/CVS/repository' not within root 'E:/CVS/repository'*

CVSROOT is set to ":pserver:myname@myserver:/E//CVS/repository"

Again, when exporting CVSROOT from command line and using +cvs co+ everything is fine and also Eclipse3 is happy with the setup.

Anyone a clue?

Cheers
Mobi.

Macbook C2D, Mac OS X (10.5.3)

Posted on May 30, 2008 4:12 AM

Reply
5 replies

May 30, 2008 7:57 AM in response to etresoft

Well, I have the same impression. The double slash (//) seems to be a well established means to make MacOSX CVS cooperate with CVSNT CVSROOTs with DOS drive letters in them.

As a matter of fact the CVSROOT in this case is "E:\CVS\repository" - don't ask sigh

But as both Eclipse and command line CVS do work with the double shash notation, our CVS (and Windows!) admin will call this just yet another Macs-don't-belong-in-Windows-domains-problem.

Or, in other words, even though using drive letters in CVS roots is just stupid, the solution must be found within Xcode 😟

Cheers
Mobi.

May 30, 2008 8:47 AM in response to Mobiwan

Is there a UNC path you could use?

What are you using for a CVS server? Are you just using CVS and pointing it at a shared path? You can run CVSNT on a Windows server and it will provide a decent CVSROOT. You can also try running CVSNT on the Mac (I do), but I don't know if it would help if you aren't running CVSNT on Windows. It might handle that path better, I don't know.

Also, I don't remember if Xcode 3 uses its own internal CVS code or not. I know they have made changes in CVS, and not for the better. Look at your SCM settings and see if you can specify an external CVS client to use. Back in Xcode 2.5, they recommended using "/usr/bin/ocvs" if you had problems. The 'o' was for obsolete. It wasn't really obsolete though. Apple decided as of Xcode 2.5 to start using CVS wrappers again like it was 1997. I don't know what they are doing currently. I switched to CVS-NT and didn't look back. Now I only have random "file is in the way" errors in Xcode.

May 31, 2008 6:17 AM in response to etresoft

If by UNC you mean direct file access then, no, unfortunately this is not possible.

Changing the prefix will be difficult: me and my MacBook I try to survive in a company environment of 150 WinXP Laptops. If it works for the dark side it will most likely only make our admin grin smugly. - even more, if it works with Eclipse for Mac. 😟 By the way, AFAIK our company actually uses CVSNT.

Seems as if Xcode 3 uses command line cvs (/usr/bin/cvs) but does something nasty with the command line arguments. Half way interpreting them, half way using them straight away. 😟

Jun 1, 2008 7:02 PM in response to Mobiwan

By UNC I mean Universal Naming Convention. It would be something like \\servername\sharepoint\path. Your admins have no business grinning at all if they are still using drive letters. Even on Windows that went out in the '90s.

Try putting the path in quote or maybe using backslash to escape the colon. You may have to try several different varieties. If they were using CVSNT, they could (and should) use anything they want as a CVSROOT. A drive letter would be (and is) just pointless.

You could try using CVS-NT on the client side, but I'm sure Xcode is the one with the problem. You don't have to use Xcode's CVS. You can alway use the command line.

This thread has been closed by the system or the community team. You may vote for any posts you find helpful, or search the Community for additional answers.

CVS protocol error with Xcode 3

Welcome to Apple Support Community
A forum where Apple customers help each other with their products. Get started with your Apple Account.