info-cvs
[Top][All Lists]
Advanced

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

"In the way" messages caused by Windows case change


From: Doug Lee
Subject: "In the way" messages caused by Windows case change
Date: Thu, 8 Apr 2004 01:42:18 -0400
User-agent: Mutt/1.5.4i

I am using CVS v1.11.5 under FreeBSD as a server (client-server
style).  I access this server with a CVS v1.11.5 Unix client and a
v1.11.9 Windows client (the standard cvs.exe, not WinCVS or any
such thing so far).  Most projects originate on Windows machines
but can get worked on from either OS, following the "always checkout
and edit on the same OS" rule.

But sometimes I have to work on a project at a site from which I
can't connect to the Unix CVS server.  In that case, I take the
Windows CVS client with me, along with a full copy of the relevant
repository tree from the Unix server.  I install the tree at the
site in a freshly "cvs init"'d repository, do my work and commit,
etc., then when I'm done, take the updated tree back to the Unix
server and put it in in place of what I originally took to the site.

Since CVS maintains repository files in the same format (no CR at
end-of-line, in particular) regardless of host OS, this seems to
work fairly well...  but I am having the following problem with
which I could sure use some help:

I'll have an active project being worked on at a remote site (local
Windows CVS with periodic tree updates to Unix as just described), and
I'll have a checkout from the Unix server that I keep up to date when
I update the Unix tree with the site's tree:

    - go to site and work all day
    - cvs commit at site to local CVS tree
    - send tree to Unix server in a zip
    - replace Unix tree with zipped site tree
    - go home to active CVS checkout from Unix tree
    - cvs update

Occasionally, as a result of Windows changing file name case at the
remote site, the name of a file in the site's version of the
repository changes (only in letter casing).  Since I'm replacing
the tree on return rather than adding to or overwriting it, this
does not cause duplicate files.  It does, however, cause spurious
"Please move ... it is in the way" messages on the above CVS update
command.  The solution seems to be to delete the file causing the
message, hand edit CVS\entries to change the case of the file name
to match the repository, then cvs update to get the file.  (What's
happening is that the Windows CVS tries to get the file once with
the old name and once with the new, but the second retrieval runs
into the first file because they match except for case.)

Advice on how to remedy this would be most welcome.  I'm
aware that some will probably say I should simply quit using FreeBSD
as a host and stick to Windows; but it is very convenient sometimes
to have the master CVS repository hosted on our FreeBSD server.
For one thing, I can then easily and quickly use the various ports,
such as cvs2cl, to analyze a CVS project.  I may still be able to
be convinced to change how the master repository is handled though.
As for the possibility of Meta-CVS, I'm not sure how easy that would
be to incorporate into this dual-OS environment either.

I'm also finding CVS import from Windows issued to a Unix CVS server
can make a mess in the repository when it's onto an existing branch
and file name case changes have happened in Windows, and there seem
to be problems with time stamps in my tree-migration plan when
Daylight Savings comes or goes; but that's for another time I
suppose. :)

Thanks in advance for any help.


-- 
Doug Lee
Bartimaeus Group
"The most exciting phrase to hear in science, the one that heralds
new discoveries, is not 'Eureka!' ('I found it!') but rather 'hmm....
that's funny...'"  --   Isaac Asimov




reply via email to

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