CodePlex SVN Code as Binary Problems

For the Gold Box Explorer project on CodePlex, and I was wanting to help improve it’s graphics handling, so I downloaded the code via TortoiseSVN and made my changes.

When creating a patch some of the .cs (C# Code) files would not generate a difference and just showed:

Index: Common/Viewers/ImageFileViewer.cs
================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Looking at the SVN properties for the file you, see that it has the binary stream property set:

svn patch file properties
svn patch file properties

My first idea was to remove that incorrect property (via above Remove button), and then I tried create the patch again, but still the base file property was noted as binary, so SVN would not generate a patch.

As this code tree is a working copy to create patches from, I decided to hack the core of the problem. SVN thinks the file is binary because of settings in the .svn\prop-base for each file in that directory:

svn patch property files
svn patch property files

Thus if we delete all those files (only because I checked and they were all just binary stream properties, which are invalid for code files), then the base properties are gone for those files…

svn patch property files deleted
svn patch property files deleted

Now when you select your file to patch, SVN will happily create a code difference as expected:

svn patch diff correct
svn patch diff correct

You now can submit it to the CodePlex project.

I assume the incorrect properties are due to some SVN bridging TFS interaction, not sure how to test that out, or where to report it. It might be interesting to if I had commit access to see if you can remove those properties and committed those change if that stuck, or if it’s more of a dynamic bridging problem. Homework for the readers. ;-)