我们在这里使用TFS 2013(版本12.0.30324.0),我们使用Visual Studio 2013.我们有一个包含批量插入的许多TXT文件的项目。
使用Visual Studio进行克隆时,其中一些文件始终使用LF行结束而不是通常的CRLF进行克隆。这打破了我们的BULK INSERT,这对于eol非常挑剔。
设置.gitattributes
没有帮助
设置git config --global core.autocrlf true
没有帮助
它始终以LF终止返回。问题似乎与文件中某些字符的存在有关。当它们不存在时,Visual Studio会正常设置CRLF,但是当它们设置为LF时,无论我有什么配置。
以下是如何重现它:
test.txt
创建一个Associação de países da África, Caribe e Pacífico
文件,最后带有CRLF
个字符test.txt
现在有一个LF结尾而不是原来的CRLF 无论如何,这将始终返回带有LF的文件。
带有CLI的MSYSGIT表现正常,它以常规CRLF结尾克隆文件,问题似乎与Visual Studio 2013 git客户端有关。我可以报告Visual Studio 2015也是如此。
它可能是什么?我真的不知道我能做些什么来解决这个问题,我相信它可能是Visual Studio中使用的git客户端的一个错误。
答案 0 :(得分:3)
这是二进制检测中的一个错误,我们错误地确定具有某些非ASCII UTF-8字符的文件是二进制的。这个错误是fixed in libgit2,这是我们在Visual Studio中支持Git的基础。这应该在即将推出的VS 2013 Update 5和Visual Studio 2015中修复。
由于我们将文件检测为二进制文件,因此将行结尾强制转换为特定类型将无效。 (那些只适用于文本文件。)
不幸的是,这意味着没有已知的解决方法。 对此给您带来的不便表示歉意。