我在一次提交2447个文件时遇到了一个SVN错误,完全卡住了。我使用的是Windows 7 64位系统上的TortoiseSVN(最新版本)。
事实上,一些文件是在Mac上创建的,而另一些是在PC上创建的,因此TortoiseSVN停止了提交,并显示了一个烦人的不一致的行结束样式
错误。
起初,为了解决这个问题,我手动打开了NetBeans中涉及到的文件,添加了一个空格,然后将其删除并保存该文件,以便NetBeans正确地转换所有行结束字符,但似乎有更多的“一些文件”被牵连其中。
我在一次提交2447个文件时遇到了一个SVN错误,完全卡住了。我使用的是Windows 7 64位系统上的TortoiseSVN(最新版本)。
事实上,一些文件是在Mac上创建的,而另一些是在PC上创建的,因此TortoiseSVN停止了提交,并显示了一个烦人的不一致的行结束样式
错误。
起初,为了解决这个问题,我手动打开了NetBeans中涉及到的文件,添加了一个空格,然后将其删除并保存该文件,以便NetBeans正确地转换所有行结束字符,但似乎有更多的“一些文件”被牵连其中。
(翻译:一个没有 \r 直接跟着的 \n)[^\r]\n$
\n
的行。难道表达式不应该是[^\r]\n$
吗? - Fabian Streitel$\r\n
而不是 \r\n$
(将行尾作为行分隔符之前的字符计算),以防有人遇到问题。 - Hashbrown(\w)\n$
捕获 w, 并将其替换为 $1\r\n
,其中 $1
是字符。\n
而不是 \r\n
)。我通过右键单击文件资源管理器来打开项目属性窗口,浏览我想要编辑的仓库,然后选择:
TortoiseSVN → 属性 → 新建... → EOL → 保留原样(没有特定的EOL) → 确定。
svn propset svn:eol-style native my_file
虽然这样做可以解决行尾问题并使合并更容易,但这意味着blame将显示添加EOL样式的人作为所有行的更改者,并且这也意味着在进行差异比较时,您的工作文件将被复制到临时文件夹中。
之后可以通过以下方式解决责任问题:
svn blame my_file -x "--ignore-space-change --ignore-eol-style"
:1,$s/\r//g
以覆盖整个文件。sed -i '-es/\r//g' <your_file>
unix2dos
命令。 - Kai\r
、\n
等。 - Kai\w\n$
- 它选择所有 Unix 的行结尾字符,除了选择在开头的第一个字符(\w
)。 - Epoc(\w)\n$
并用$1\r\n
替换,其中 $1 是字符。 - assylias