SVN行尾样式

8
当我尝试在SVN提交文件时,出现了“提交失败”的错误。具体如下...提交svn:不一致的行结尾风格。

2
我遇到了这个问题的一个可怕变体:我在一个__streams__库中看到了这个错误消息。查看给出错误的文件,我看到像test/unicode_demo_utf8_crlf.txt这样的名称。我怀疑这些文件本来就应该有不一致的行尾风格。不幸的是,在svn import中添加--force并不能足够鼓励Subversion安静地读取文件。有什么解决办法吗?也许是--double-secret-force - Robert P. Goldman
6个回答

8
检查你的svn属性,包括目录和文件。如果你定义了svn:eol-style,但是你的文件包含不同的样式(Unix vs DOS),提交将失败,因为SVN不知道应该转换成哪种样式。
参考:http://svn.haxx.se/users/archive-2006-07/0702.shtml

1

检查提交信息中的结尾行符(EOLs):如果您使用 --file 开关从文件中传递提交信息,请确保提交信息中的结尾行符风格一致(全部为 DOS 或全部为 UNIX)。


1

对于跟随者,以下是手动设置属性为其中之一的方法:

 svn propset svn:eol-style LF path/to/filename

对我来说,解决方法是删除该属性。 - Charbel
@Charbel 这并不是真正的解决方法,而只是忽略了问题。这是否会引起任何实际问题将取决于使用的其他工具/语言。 - thelem

1

一旦你了解了svn期望的行尾风格,大多数现代编辑器都有选项可以将你的源代码完全转换为一种风格或另一种风格。你也可以运行正则表达式来检测和修改它们(我喜欢用Perl)。

MSDOS行尾: "\r\n"

UNIX行尾: "\n"


3
DOS(和Windows)使用“\r\n”。此外,Mac OS Classic(9及以下版本)使用“\r”。 - Samir Talwar

0
我在Windows环境下使用TortoiseSVN。当尝试提交Linux编写的项目文件(一个AVR32项目)时,我遇到了相同的错误。我通过在Microsoft Visual Studio中打开每个文件来解决这个问题,此时VS提示我规范化行结尾。选择这样做会导致Tortoise停止抱怨。

0

从您的工具(如kdiff)本身中选择行结束样式……右下角(仅在输出行上方)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接