源文件的VSS和Visual Studio 2008“二进制文件不同”消息

时间:2009-01-02 18:01:08

标签: visual-studio-2008 visual-sourcesafe

我正在使用VSS 2008和Visual Studio 2008.当我的源文件签入时,VSS属性对话框将它们显示为“Unicode(UTF-8)”类型。但是,如果我在Visual Studio中检查一个,然后做一个比较,它说“二进制文件不同”。还有其他人看到这个吗?我在某个地方搞砸了吗?

谢谢,   安迪

更新:   感谢VonC的一些见解。在大多数情况下,关闭“自动检测本地文件的编码”复选框可以修复它,但对于至少一个文件,它没有帮助。此外,我还没有找到一种方法来做多个文件 - 它们必须每次更改,一次一个。   我仍在寻找更全面的解决方案。

3 个答案:

答案 0 :(得分:9)

从此old (2004) but may be still relevant article

  

visual source safe并不总能正确识别文本文件类型。当使用“auto”类型签入文件时 - 它将它们视为二进制文件。

     

因此,当您比较两个.sql文件时,您可能会看到“binary files differ” - 仅此而已。 (这就是vss如何处理二进制文件)。

The binary file differ

  

解决方案是使用source safe中文件的属性上下文菜单更改文件类型。将类型更改为文本,您应该能够执行视觉比较。您也可以在签入文件时点击“高级”选项,然后手动将选择更改为“text”。

     

为了避免将来 - 您可以在visual source safe中的选项菜单下添加文件类型设置,以设置各种文件类型的默认行为。

答案 1 :(得分:5)

您可以指定其他应用程序,而不是使用VSS内置的比较工具。这可以帮助您避免二进制问题。举个例子,如果你碰巧使用Beyond Compare(遗憾的是,不是免费软件,但它是我的指示):

  1. 转到“工具”菜单
  2. 转到选项菜单项
  3. 转到“自定义编辑器”标签
  4. 将操作更改为“文件差异”选择
  5. 将文件扩展名更改为:。*
  6. 将命令行更改为(包括引号):“C:\ Program Files \ Beyond Compare 2 \ bc2.exe”%1%2
  7. 点击添加按钮
  8. 单击“确定”按钮
  9. 我猜你可以用另一个程序换掉上面的命令行值,但是我自己没试过。

答案 2 :(得分:0)

是的,其他答案都是正确的。但是如果文件被某人锁定并且您需要进行代码合并,可以做些什么呢?禁用后无法更改属性:

Type is disabled as someone else checked out

要为版本启用“类型”下拉列表,请执行此简单操作。

0)下载并运行WinSpy ++;

1)将指针拖放到禁用的下拉列表中;

2)将句柄更改为“已启用”;

3)VSS将允许您保存任何更改。

WinSpy++ sequence

PS。 VSS已经过时,但仍然被广泛用于懒惰改变公司。