“不一致的线条结束风格”的噩梦

时间:2013-05-24 08:36:41

标签: svn windows-7 tortoisesvn eol

一次提交2447个文件时,我完全陷入了SVN错误。我在Windows 7 64位上使用TortoiseSVN(最新版本)。

事实上,有些文件是在Mac上创建的,而其他文件是在PC上创建的,因此TortoiseSVN会以恼人的Inconsistent line ending style错误停止提交。

一开始,为了解决这个问题,我在中手动打开了被控制的文件,添加了一个空格,将其删除并保存文件,以便Netbeans正确转换所有行结束字符,但似乎还有更多比“某些文件”有罪。

当然,我在网上搜索了一个解决方案,但我找不到任何适合Windows环境的内容。

我目前正撞在墙上。

8 个答案:

答案 0 :(得分:23)

在Windows 7下,您可以使用Notepad++ v5.6.8转换EOL

  

编辑 - > EOL转换 - > Windows / Unix / Mac

答案 1 :(得分:3)

所以我用@assylias's answer回答我自己的问题:

  

您可以捕获w:(\w)\n$并替换为$1\r\n,其中$1是该角色。

搜索&用这个正则表达式代替Netbeans就可以了。

编辑:我的问题是自定义脚本在这些文件中插入了错误的EOL字符(\n而不是\r\n

答案 2 :(得分:3)

在Notepad ++中,选择"查看 - >显示符号 - >显示行尾"

在搜索框(Control-F)中选择正则表达式搜索模式并搜索字符串:

  

[^ \ R] \ n $的

(翻译:\ n之前没有\ r \ n)。

这将直接为您提供问题行,在该问题行中您将看到以LF结尾的行而不是使用CR-LF对

答案 3 :(得分:2)

如果您的行结尾都是有序的,则可能是您的文本文件具有UTF16字节订单标记(BOM)。

您可以使用Notepad ++解决这个问题。编码 - >转换为UTF-8。

答案 4 :(得分:0)

在Windows下的Vim或GVim中,损坏的文件在每行末尾都显示^M

要修复它::s/\r//g以删除损坏的额外行结尾。

答案 5 :(得分:0)

关于上面的帖子,实际上vim正则表达式应该是:1,$s/\r//g。 * n?x的另一种方法是使用sed:

  

sed -i' -es / \ r // g'

答案 6 :(得分:0)

要解决不同行结尾的问题,可以按如下方式设置SVN属性:

svn propset svn:eol-style native my_file

虽然这将解决行结尾问题并使合并更容易,但这意味着责备会显示添加eol风格的人作为所有行的更改者,这也意味着您的工作文件最终会被复制在做差异时进入临时文件夹。

责备问题可以通过以下方式解决:

svn blame my_file -x“--ignore-space-change --ignore-eol-style”

答案 7 :(得分:0)

我要做的是在浏览要编辑的存储库的同时,右键单击文件资源管理器以打开项目属性窗口, 然后选择:

TortoiseSVN > Properties > New... > EOL > As is (no specific EOL).