一次提交2447个文件时,我完全陷入了SVN错误。我在Windows 7 64位上使用TortoiseSVN(最新版本)。
事实上,有些文件是在Mac上创建的,而其他文件是在PC上创建的,因此TortoiseSVN会以恼人的Inconsistent line ending style
错误停止提交。
一开始,为了解决这个问题,我在netbeans中手动打开了被控制的文件,添加了一个空格,将其删除并保存文件,以便Netbeans正确转换所有行结束字符,但似乎还有更多比“某些文件”有罪。
当然,我在网上搜索了一个解决方案,但我找不到任何适合Windows环境的内容。
我目前正撞在墙上。
答案 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).