[cvsnt] Unable to access a renamed filed

Alastair Hoyle ahoyle at hoylesolutions.co.uk
Wed Sep 3 10:10:11 BST 2008


Hi Arthur

Thanks for you reply.
> 
> The .directory_history,v and Command.c,v file you sent through appear to have
>  had the line endings modified, eg: by ftp'ing form unix in ascii mode.  It 
> is essential that you never ZIP or alter the line endings of these files.  I 
> was able to repair them for my own testing.
Sorry for that I am not sure how that happened, might be something to with how I
attached them.

> 
>> C:\temp>cvs -q -f checkout -r 1.31 
>> MyRepo\ExecCommands .c cvs checkout: cannot find
>>  module `MyRepo/ExecCommands. c' - ignored
>> 
> 
> Yes - this is the correct behaviour.  You cannot checkout a revision by it's
>  'new' name and revision number once it has been renamed, you need to use a 
> Tag, or branch or HEAD - using a 'date' should also work, but not 'revision 
> numbers' - the reasons are complex - it could be overcome in the code but 
> I've not time to do it for 2.5.04.
> 
Yes I can check out using dates, but I am not sure how to checkout from a branch 
with this, I will have to read the manual.

>> C:\temp>cvs -q -f checkout MyRepo\ExecCommands.c 
>> cvs checkout: cannot find module 
>> `MyRepo/ExecCommands. c' - ignored
> 
> OK - this would be wrong - but I cannot reproduce it, ie: this works OK for 
> me:
I have tried this again and it still fails for me, but it is linked to the
cvsroot environment variable you mention below. When cvsroot is set to
"C:\CVSROOT" or ":local:C:\CVSROOT" it fails but it works when it is set to
":sspi:localhost:/CVSROOT". I will have to go and read the manual again!

As I previously mentioned.
> However, when I now try to manually checkout any version of Command.c (the 
> old name) it fails with a "is not (any longer) pertinent" warning.
This problem also seems to be related to the CVSROOT variable. When set to
"C:\CVSROOT" the following command generates an error, but when set to
":sspi:localhost:/CVSROOT" it work OK.

C:\cvs checkout -r1.30.2.2 -dtemp MyRepo\Command.c

>> Repository is C:\CVSRoot
> 
> I hope you are not using this as your CVSROOT?  This is the "local" protocol
>  and is for internal development use only, your CVSROOT should be something 
> like :sspi:user at host:/repo
> 
Yes I was. I am only running CVS on a single PC. I have an environment variable
CVSROOT which was set to "C:\CVSRoot". However, Tortoise had sent the ROOT file
in the modules CVS directory (in my sand box) to ":local:C:\CVSROOT". I have now
changed my environment variable to ":sspi:localhost:/CVSROOT". I am not sure if
I should manual change all the Root files in my sand box too?

> Is this the client and the server version? Can you retest using 2.5.04 Build
>  3125 as both client and server and using the -d to set a client/server 
> protocol and try again and send the results?

C:\temp>cvs -d :sspi:localhost:/cvsroot ver
Client: Concurrent Versions System (CVSNT) 2.5.04 (Zen) Build 3125 (RC 8) (clien
t/server)
Server: Concurrent Versions System (CVSNT) 2.5.04 (Zen) Build 3125 (RC 8) (clien
t/server)

For now I will continue to use the revision tag and old name to manually 
checkout older version of my file for comparison.

Since I have only renamed one file, is it possible of hack the repository to 
permanently change the file name? I would like to keep all the revision history, 
but would be happy to refer to the file by its new name even in very old 
versions. Could I just rename the .v file and do a search and replace on the 
directory and history files?

Thanks again for all your help

Alastair Hoyle


More information about the cvsnt mailing list
Download the latest CVSNT, TortosieCVS, WinCVS etc. for Windows 8 etc.
@CVSNT on Twitter   CVSNT on Facebook