On Feb 21, 2006, at 1:30 PM, Bernhard Schmalhofer wrote:
Chris Dolan (via RT) schrieb:
# New Ticket Created by Chris Dolan # Please include the string:
[perl #38604]
# in the subject line of all future correspondence about this
issue. # <URL: https://rt.perl.org/rt3/Ticket/Display.html?id=38604 >
While doing an "svn update" from a Mac OS X box today, I got this
error:
svn: Failed to add file 'languages/m4/lib/Parrot/Test/M4.pm':
object of the same name already exists
This is funny. I think that I have renamed m4.pm to M4.pm around
revision 11350.
So it should be OK for fresh checkouts.
The funny thing is that I can do a 'svn mv' under Unix, which
causes troubles on
case-insensitive filesystems.
Aha. Indeed, the last time I updated was prior to 11350, I believe.
I agree that fresh checkouts should be OK. In this case, my
successful workaround was simply "rm languages/m4/lib/Parrot/Test/
m4.pm ; svn update"
IIRC, "svn mv" is really just "svn cp" followed by "svn rm" behind
the scenes. So, there is a moment during update when both files need
to exist. A possible (untested) workaround for committers might be:
svn mv m4.pm m4-temp.pm
svn commit
svn mv m4-temp.pm M4.pm
svn commit
To prevent a repeat of this problem in the future, one solution
is to use the check-case-insensitive.pl pre-commit hook script
that is in the contrib directory of the subversion source.
This FAQ has more info:
http://subversion.tigris.org/faq.html#case-change
Somebody who can administrate the SVN server could take a look at
this script.
The FAQ does not really tell what it does. Mandating all lower case
filenames is no solution.
The script looks at the incoming files and compares to existing files
to see if any names differ only in case. If there are such files,
the commit fails.
Chris