[Cvsnt] Cvsnt case sensitive?

Bo Berglund bo.berglund at telia.com
Mon Apr 29 09:08:26 BST 2002


There *is* a problem because the CVS repository keeps an image of the
source directory in a file-by-file fashion. The files themselves
contain all information regarding past history and their file names on
the repository is the only information CVS has of the actual file
name. So it is possible to go directly into the repository and change
the name of a file from foo.bar,v to oof.bar,v thus making all checked
out sandboxes confused (file does not exist in repository) and the
checkout of old revisions will fail because the name at that time used
in the makefiles etc was foo.bar, but it does not exist anymore even
in history. So to manage this there must be an extra administration
file or similar on the server that keeps track of all this, maybe by
having repository file names separate from the true file names and
then managing the names in cvs operations in and out from the
repository. But it will break the CVS code seriously.

Also remember that with the present system you are able to check out a
single file of the module even if there are zillions of files. Just
specify the filename in the checkout command. But this then of course
relies on the fact that the data are kept fully within the RCS file in
the repository.

The only way I know that can be reliably used in order to change the
name is to do as follows:
1) Make a copy of the existing file in your sandbox with the new name
2) CVS remove the old file
3) CVS add the new file
Now the old file will still be there when you check out on old tags
and the new will be there for newer versions. But the new file will
start at revision 1.1 and there is *no* cvs connection between the
two.
And you cannot change the name only by modifying the capitalization if
you use CVSNT because the Windows platform is not case sensitive, so
this will be a no operation command. The old file will still be there.

/Bo


On Mon, 29 Apr 2002 07:50:44 +0000 (UTC), "Bertrand Denoix"
<bertrand.denoix at kalimagroup.com> wrote:

>I've always missed a "cvs rename" command. After all, it's not uncommon
>to change a file name so that it better reflects the contents which can
>evolve over time, and with the current remove/create scheme, there is
>nothing which says that bar.c v1.0.0 is actually a replacement for foo.c
>v2.1.4.
>OTOH I reckon that keeping track of the previous names of a file would
>be quite an impact on the code (and most likely not too compatible  with
>the RCS format).
>
>>If you look for a file 'Foo.java' on Windows you'll always see it
>because >windows isn't case sensetive.  If the java compiler is
>enforcing case
>>sensitivity beyond that it's a bug in that compiler, because on Windows
>>it's not unusual to get dodgy case on files.
>
>
>_______________________________________________
>Cvsnt mailing list
>Cvsnt at cvsnt.org
>http://www.cvsnt.org/cgi-bin/mailman/listinfo/cvsnt


/Bo
(Bo Berglund, developer in Sweden)
_______________________________________________
Cvsnt mailing list
Cvsnt at cvsnt.org
http://www.cvsnt.org/cgi-bin/mailman/listinfo/cvsnt



More information about the cvsnt mailing list