如何git应用包含特殊字符的diff文件(åäö)

时间:2016-11-22 09:19:02

标签: git

更新3 事实证明我的问题是在所有之后的行结尾,我之所以认为编码有问题可能是因为我的文字编辑器无法显示正确的编码(或者,更有可能是我无法理解它们)。 在应用补丁时,可以使用--keep-cr解决我的问题。

我的输入文件混合编码ANSI / UTF-8,瑞典语字符(åäö)以及可能的行结尾问题。使用以下一组创建/应用补丁,我现在可以成功应用补丁:

git format-patch [myhash]
git am [patchdir]/*.patch --keep-cr

我正在尝试应用包含带有瑞典字符(åäö)的差异的补丁,但在这样做时,git-apply报告错误,同时搜索:....瑞典字符在这里......

如果我在文本编辑器中查看特定文件,我能够找到git-apply正在寻找的确切文本。我知道行结尾/空格的问题,但这似乎不是这样的问题。

第一次尝试我使用MINGW64(git版本2.10.0.windows.1)创建/应用补丁,这创建了补丁文件,使我的åäö看起来很有趣,所以我怀疑有一些编码问题。

第二次尝试我使用了“正常的Windows命令提示符”和git.exe以及这似乎创建了很好的补丁文件(我可以在纯文本编辑器中阅读åäö)所以我想这些补丁可以应用,但没有,相同的问题。

如果我在命令提示符或MINGW64中使用git.exe没关系,format-patch创建的补丁看起来是一样的,只是我的文本编辑器(Notepad ++)可能无法理解编码。

Update2:我发现我尝试应用的补丁包含两个不同文件的差异,两个文件都包含瑞典字符,但文件编码不同。第一个文件是ANSI(cp1252),第二个文件是UTF-8。在检查补丁文件时,我可以看到来自ansifile或utf-8文件的差异被搞砸了(或者至少看起来在Notepad ++中搞砸了)。如果我在Notepad ++中切换ANSI和UTF-8之间的编码,我可以看到一组瑞典字符。这让我相信我发现了问题,但是在创建一个只包含两个文件的非常简单的存储库时,我似乎无法重新创建错误。我不确定哪个编码真正用于补丁文件,因为它似乎支持补丁文件中的瑞典字符,即使源自两个具有不同编码的文件。

0 个答案:

没有答案