Subversion and case-insensitive filesystemsMy Mac's filesystem is case-insensitive. It thinks
fooare the same file.
Subversion's filesystem is case-sensitive. It thinks
foo are different files.
As you can imagine, this mismatch has hilarious consequences. If your repository contains a directory with both
foo, then svn crashes hard when you try to checkout that directory:
svn: In directory 'project/src/com/publicobject'
svn: Can't copy 'project/src/com/publicobject/.svn/tmp/text-base/Foo.svn-base' to 'project/src/com/publicobject/Foo.tmp': No such file or directory
The solution for me was to:
- checkout the directory on a case-sensitive filesystem (ie. a linux machine)
- delete one of the offending files
- commit the delete
Bonus Material: how did I get myself in this situation?
I renamed a file from
OpenFileInIntellij.java. Subversion cannot actually rename a file. Instead, it fakes it by creating a copy and then deleting the original. As you can imagine, this doesn't work too well on a case-insensitive file system...