bug-cvs
[Top][All Lists]
Advanced

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

Re: Unable to resurrect a file two directories deep, but fine with on


From: Derek Robert Price
Subject: Re: Unable to resurrect a file two directories deep, but fine with one directory deep
Date: Tue, 10 Jun 2003 14:43:20 -0400
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.0.2) Gecko/20030208 Netscape/7.02

Rodrigo de Salvo Braz wrote:

Hi,

I have a file, say 'd2/d3/d', up-to-date with repository.

then I do

mv 'd2/d3/d'  'd2/d3/d.bak'
cvs remove 'd2/d3/d'
cvs add 'd2/d3/d'

and get the message:

cvs [add aborted]: no such directory `d2'

However if I do the same to, say, 'd' or even 'd2/d', the file is
simply resurrected, as one would expect.

I get the same result in both Cygwin and Solaris 8.

Is this a bug?


It appears to be a fairly minor bug. At least on Linux, I get the same error message you report, but the file is actually resurrected as intended on the next update since the Entries.Log file has already been created.

It looks like:

           if (isfile (file_to_try))
               addfile (&files_by_dir, dir, comp);
           else if (isdir (dir))
           {
. . .
           }
           else
               error (1, 0, "no such directory `%s'", dir);

in start_recursion() in src/recurse.c is failing to find the removed file in the file system in the call to isfile(), but I've yet to figure out how dir got set to only sdir2 or why CVS couldn't find it for the call to isdir(). It's possible that checking against Entries and noticing the add would solve the problem, though I'd like to know how dir got set incorrectly, but I don't have any more time to work on this today.

Derek

--
               *8^)

Email: derek@ximbiot.com

Get CVS support at <http://ximbiot.com>!
--
I will not fake my way through life.
I will not fake my way through life.
I will not fake my way through life...

         - Bart Simpson on chalkboard, _The Simpsons_







reply via email to

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