我正在使用VSS 2008和Visual Studio 2008.当我的源文件签入时,VSS属性对话框将它们显示为“Unicode(UTF-8)”类型。但是,如果我在Visual Studio中检查一个,然后做一个比较,它说“二进制文件不同”。还有其他人看到这个吗?我在某个地方搞砸了吗?
谢谢, 安迪
更新: 感谢VonC的一些见解。在大多数情况下,关闭“自动检测本地文件的编码”复选框可以修复它,但对于至少一个文件,它没有帮助。此外,我还没有找到一种方法来做多个文件 - 它们必须每次更改,一次一个。 我仍在寻找更全面的解决方案。
答案 0 :(得分:9)
从此old (2004) but may be still relevant article:
visual source safe并不总能正确识别文本文件类型。当使用“
auto
”类型签入文件时 - 它将它们视为二进制文件。因此,当您比较两个.sql文件时,您可能会看到“
binary files differ
” - 仅此而已。 (这就是vss如何处理二进制文件)。
解决方案是使用source safe中文件的属性上下文菜单更改文件类型。将类型更改为文本,您应该能够执行视觉比较。您也可以在签入文件时点击“高级”选项,然后手动将选择更改为“
text
”。为了避免将来 - 您可以在visual source safe中的选项菜单下添加文件类型设置,以设置各种文件类型的默认行为。
答案 1 :(得分:5)
您可以指定其他应用程序,而不是使用VSS内置的比较工具。这可以帮助您避免二进制问题。举个例子,如果你碰巧使用Beyond Compare(遗憾的是,不是免费软件,但它是我的指示):
我猜你可以用另一个程序换掉上面的命令行值,但是我自己没试过。
答案 2 :(得分:0)
是的,其他答案都是正确的。但是如果文件被某人锁定并且您需要进行代码合并,可以做些什么呢?禁用后无法更改属性:
要为版本启用“类型”下拉列表,请执行此简单操作。
0)下载并运行WinSpy ++;
1)将指针拖放到禁用的下拉列表中;
2)将句柄更改为“已启用”;
3)VSS将允许您保存任何更改。
PS。 VSS已经过时,但仍然被广泛用于懒惰改变公司。