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
The problem is that there are two files that differ only in case:
m4/lib/Parrot/Test/M4.pm
m4/lib/Parrot/Test/m4.pm
These files are colliding, and one of them should be renamed or
deleted. 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
># 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.
>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.
CU, Bernhard
> 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