2012-10-30 99 views
3

我们正在研究使用TFS作为版本控制系统的Visual Studio 2010中的一个大型代码库。如何在TFS中合并文件时避免编码冲突?

执行合并时,我们最近得到了很多编码问题。对于他们中的大多数,我们得到一个选项“选择编码和合并”的其他文件,我们得到:

"The encodings for the files being merged must match or an encoding conversion must be specified."

我们通常把在UTF-8的每一个文件,虽然我们的代码页1252之间,在合并时,得到冲突UTF-8。

为了解决这些问题,我们总是执行手动合并,这可能非常麻烦。我们如何避免这些错误? TFS中源代码文件的推荐编码是什么?我们如何递归设置编码以避免将来出现这样的错误?

回答

4

您正在收到消息,因为TFS认为(正确或不正确)文件在不同分支中具有不同的编码。要仔细检查编码,请转到任何源控制文件的properties window

虽然TFS在将文件添加到源代码管理时检测到编码,但如果稍后更改了编码,TFS将不会始终将其选中。单击Set Encoding按钮,然后单击检测以查看实际编码是什么。如果它不符合您的期望,请检查文件,在文本编辑器中修改编码,然后让TFS重新检测编码。

一旦两个分支中的编码相同,就不应再出现此错误。

+0

有没有办法改变整个分支文件的编码? – Yoeri

+2

你可以尝试在本地文件系统上使用PowerShell或其他工具[批量更改编码](http://stackoverflow.com/questions/1681568/change-files-encoding-recursively-on-windows)。然后,您可以使用['tf checkout'](http://msdn.microsoft.com/query/dev10.query?appId=Dev10IDEF1&l=zh-CN&k=k(VS.TFC.SOURCECONTROL.COMMANDCHECKOUT)&rd = true)命令行工具来更改TFS中的编码:'tf checkout/type:text/recursive .'。不知道这是否会起作用,但它应该给你一个起点。 –