我们主要在 Windows 环境中开发我们的 PHP 应用程序,并将我们的文本源文件存储在 PC/ANSI中。
然而现在,一位使用 Mac 平台的开发人员加入了我们,我们在他的机器上创建“补丁”时遇到了问题。当他进行任何更改并执行以下操作时:
svn diff > patchfile.patch
他生成了一个补丁文件,表明源代码文件的每一行都已被修改(显然不是这种情况)。
我尝试将测试 ANSI 文件保存为:
PC / UTF-8 (using UTFCast Express which I writes the BOM by default)
PC / UTF-8 (using Notepad++ "Encoding > Convert to UTF-8" - which writes the BOM)
也:
PC / UTF-8 (using Notepad++ "Encoding > Convert to UTF-8 without BOM")
PC / UTF-8 (using Notepad++ "Encoding > Encode in UTF-8 without BOM")
对于所有这些情况,每当他进行更改并执行 svn diff > patchfile.patch 时,它会输出所有行,就好像所有行都已更改一样!
[我们也尝试对最后 3 个执行“svn diff -x -p > patchfile.patch” - 没有区别]
顺便说一句,使用最后两个选项生成的文件在我的 PC 机器上继续显示为 ANSI。两者似乎根本没有修改文件,并且在 DOS 提示符下执行“fc”(文件比较)并没有发现任何区别。
我应该使用什么编码进行跨平台开发?