5

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

谢谢,安迪

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

4

3 回答 3

10

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.

于 2009-01-05T15:24:54.973 回答
6

除了使用 VSS 的内置比较工具外,您还可以指定其他应用程序。这可以帮助您避免二进制问题。例如,如果您碰巧使用 Beyond Compare(遗憾的是,它不是免费软件,但我有相关说明):

  1. 转到工具菜单
  2. 转到选项菜单项
  3. 转到自定义编辑器选项卡
  4. 将操作更改为“文件差异”选择
  5. 将文件扩展名更改为:.*
  6. 将命令行更改为(包括引号):“C:\Program Files\Beyond Compare 2\bc2.exe”%1 %2
  7. 点击添加按钮
  8. 单击确定按钮

我猜你可以用另一个程序换掉上面的命令行值,但我自己没有尝试过。

于 2009-01-23T18:51:11.220 回答
0

是的,其他答案是正确的。但是如果文件被某人锁定并且您需要进行代码合并怎么办?一旦属性被禁用,您将无法更改它们:

其他人签出时类型被禁用

要启用版本的类型下拉菜单,请执行此简单技巧。

0) 下载并运行 WinSpy++;

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

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

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

WinSpy++ 序列

附言。VSS 已过时,但仍广泛用于懒惰改变的公司。

于 2013-11-04T15:48:17.150 回答