Kuros Yalpani wrote:

> Michael Peck schrieb:
>
> > Because NT is not case sensitive, CVS is told by the OS that the file already
> > exists when you try to add the new file (with the corrected case).

This might be fixable on the client side and though I'm not convinced the behavior is
incorrect, I AM suspicious that it might be.


> > All DOS
> > programs have this behavior, I mean Windows apps.
>
> Actually, this is not so. In DOS/Windows/NT, if you delete a file and then recreate
> it
> with a new case then there is no problem. The OS does not maintain a history of the
> filename. BUT, cvs does! And in my view it incorrectly tries to resurrect the old
> file.

Calling it incorrect is questionable since CVS running on a UNIX server is going to
maintain case sensitive file names because it can and because UNIX types want that
sometimes.  You might be able to accomplish something with rename tracking, but CVS
doesn't do that yet - an old problem that I haven't heard anybody talking much about
solving recently.

If you are working in a Windoze, er DOS, -only environment, someone mentioned that you
could rename the archive file on the server as a workaround, but if your repository is
interoperating with case sensitive systems, this will cause problems in any workspaces
where the file is currently checked out and maybe break old builds as the file name
change is not being tracked by CVS (i.e. make thinks that file and FILE are different
files too).


> BTW, What I am looking for is a proper fix for this problem, i.e. no workaround and
> since I am  gnu lover, I will gladly return back a solution for a bit of help from
> the CVS guru's that helps me find out where the problem is.. I have a feeling
> though that I haven't convinced you yet that this is a problem.

Well, like I said, you could probably fix the client side so that a 'cvs rm file',
'cvs add FILE' sequence would do what you'd expect without breaking anything on a case
sensitive server, but I haven't analyzed the problem fully.

I wouldn't ever expect CVS to notice that you had done a simple (and OS specific)
rename of a file, at least under the current architecture.  I must admit that it seems
to make _some_ sense from the standpoint of a case insensitive client, but from a case
sensitive server's point of view you are performing an implicit 'cvs rm', 'cvs add'.
This is a messy situation, at least until somebody implements some sort of rename
tracking for CVS, as not everybody likes that method of renaming files (or any method
currently available to CVS, for that matter).

Also, from a case insensitive client's point of view, this is functionally equivalent
to noticing a filename change from old.c to old.c.sav and assuming that the rename
should be checked into the repository.  If this really seemed to be a useful feature,
I can imagine the equivalent of an ignore list for renames containing, say, *.sav, *~,
etc., but I'm not nearly convinced that it's useful enough to be worth the effort.

Derek

--
Derek Price                      CVS Solutions Architect ( http://CVSHome.org )
mailto:[EMAIL PROTECTED]     OpenAvenue ( http://OpenAvenue.com )
--
As honest as the day is long.

                - S. Z. Sakall as Headwaiter Carl, _Casablanca_




_______________________________________________
Bug-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-cvs

Reply via email to