[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