[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: cvs checkout -d & Max-dotdot

From: Larry Jones
Subject: Re: cvs checkout -d & Max-dotdot
Date: Wed, 26 Mar 2003 10:00:01 -0500 (EST)

John Daniel Doucette writes:
> mkdir: created directory `../../../../../top/middle/bottom/working'
> cvs server: protocol error: `../../../../../top/middle/bottom/working' 
> contains more leading ..
> cvs [server aborted]: than the 0 which Max-dotdot specified
> Is this a server bug or client bug? 

It is a fairly long-standing client bug.  The code changes that were
made to support accessing multiple repositories in a single command
broke the code that sent the Max-dotdot request to the server.  So far,
no one has had sufficient motivation or understanding of the relevant
code to fix it.

> It seems like a client bug, since 
> checkout -d should only affect the destination of the checked out files on 
> the client machine, and has nothing whatsoever to do with the repository 
> path of the modules being checked out.

It doesn't have anything to do with the repository path, but it *does*
affect the path in the server's temp directory.  The server can't ignore
the path completely because it's possible to have a single command
affecting files in multiple directories, so the server has to reproduce
the user's working directory structure (at least partially) in it's
temporary working directory.

> I can easily change references in 
> the latest versions of all makefiles to use a cd ../../../../.. followed by 
> checkout, but this doesn't really help me if someone wants to build a old 
> version.  I can't feasibly change all versions of the makefiles!

Nonetheless, I think changing the makefiles is the best solution to your
problem.  Old versions can be changed on an as-needed basis.

> I found reference in the CVS client/server protocol documentation to 
> "Requests" that can be made of the server.  One of the requests is the 
> Max-dotdot option.  What would happen if I used Telnet to send this request 
> to the server with a reasonable value after I have logged in and before I 
> have checked out and run my makefile?

Absolutely nothing.  "Logging in" just records the password that
corresponds to the current CVSROOT setting, it doesn't establish any
kind of session with the server.  The way client/server works is that
you establish a connection to the server, send requests and receive
responses, and then disconnect.  Requests only have an effect during the
same connection.

-Larry Jones

Mom would be a lot more fun if she was a little more gullible. -- Calvin

reply via email to

[Prev in Thread] Current Thread [Next in Thread]