Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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, Andy

Update: 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.

like image 487
AndrewCr Avatar asked Jan 02 '09 18:01

AndrewCr


2 Answers

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.

like image 62
VonC Avatar answered Oct 11 '22 08:10

VonC


Rather than use the built in compare tool for VSS, you can also specify other applications. That may help you avoid the binary issue. As an example, if you happen to use Beyond Compare (sadly, not freeware, but it's one I have directions for):

  1. Go to Tools menu
  2. Go to Options menu item
  3. Go to Custom Editors tab
  4. Change operation to "File Difference" selection
  5. Change file extension to: .*
  6. Change command line to (including quotes): "C:\Program Files\Beyond Compare 2\bc2.exe" %1 %2
  7. Click Add button
  8. Click OK button

I'm guessing you can swap out the command line values above with another program, but haven't tried it myself.

like image 30
pdwetz Avatar answered Oct 11 '22 10:10

pdwetz