The testsuite/blahBlah directory deliberately contains two files that differ only in case (blah.txt and Blah.txt) -- this is for testing purposes, to make sure s3cmd is able to upload files that differ only in case.
While this is a good test to have, storing these files directly in Subversion means that users who are on case-insensitive filesystems can't "svn co" to check out the project, and therefore can't contribute to it. For example, I am on Mac OS X, and its default filesystem is case-insensitive on read (although it's case-sensitive on write). OS X's default filesystem does not allow files "blah.txt" an "Blah.txt" to exist in the same directory. So "svn co" fails when it gets to those files:
$ svn co https://s3tools.svn.sourceforge.net/svnroot/s3tools/s3cmd/trunk/ s3cmd
svn: In directory 's3cmd/testsuite/blahBlah'
svn: Can't open file 's3cmd/testsuite/blahBlah/.svn/tmp/text-base/blah.txt.svn-base': No such file or directory
I was able to work around this by using the Mac's "Disk Utility" to create a .dmg file (basically a whole filesystem contained in a single file) that was formatted with a case-sensitive filesystem, and then open it, and then cd to its directory (/Volumes/s3tools), and finally do "svn co" from there. But that's a lot of work, and I think probably even semi-experienced developers may not know how.
Since the test is a good one to have, I think a good way to handle this would be to change the testing code so that blah.txt and Blah.txt are not checked into Subversion, but rather, are created on the fly by the testing script. To make it even better, the testing script could skip that test if it detects a case-insensitive filesystem (e.g. it tries to create both files, and then it checks to see if two separate files were created).
Log in to post a comment.