VSS and Visual Studio 2008 “Binary Files Differ” message for source files


I'm using VSS 2008 and Visual Studio 2008. When my source files are checked in, the VSS property dialog shows them as type "Unicode (UTF-8)". But if I check one out from within Visual Studio, then do a compare, it says "binary files differ". Is anyone else seeing this? Do I have a screwed up setting somewhere?


Thanks to VonC for some insight. In most cases, turning off the "Auto-detect encoding of local file" checkbox fixes it, although for at least one file, it didn't help. Also I haven't been able to find a way to do multiple files — they have to each be changed, one at a time.
I'm still on the lookout for a more comprehensive solution.

Best Solution

From this old (2004) but may be still relevant article:

visual source safe doesn't always recognize text file types properly. when checking-in files using 'auto' type -- it treats them as binary.

So when you compare two .sql files you might see 'binary files differ' -- and nothing more. (that's how vss treats binary files).

The binary file differ

The solution is to change the file type using the properties context menu for the file in source safe. Change the type to text, you should be able to perform the visual comparison. You can also click on the 'advanced' option when checking-in the file, and manually change the selection to 'text' then.

To avoid in the future - you can add file type settings under the options menu in visual source safe, to set the default behavior for various file types there.