2012-10-30 49 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 .'。不知道這是否會起作用,但它應該給你一個起點。 –