有没有办法让TortoiseSVN按原样保留EOL(行结尾)



我正在检查具有Linux风格行结尾(只有LF字符)的文件。当我在Windows中使用TortoiseSVN签出一个文件时,它会将行尾转换为Windows样式(CR+LF)。我试着在subversion配置文件中添加行,以强制它使用LF,是的,我确实设置了enable auto-props=yes。这不起作用,即使起作用了,也不是我想要的,因为我宁愿TSVN不接触文件。按原样复制即可。

正如其他人所指出的,您需要设置svn:eol-style属性。此属性可以有三个值:
  • LF:在签出和提交时自动将行尾设置为Unix行尾
  • CRLF:在签出和提交时自动将行尾设置为Windows行尾
  • native:这将在提交到Unix行结尾(LF)时存储行结尾,但将根据客户端使用LFCRLF签出行结尾

您可以在$HOME/.subversion/config文件中设置auto-props设置,以便将此属性自动附加到所有新文件。然而,这是每个用户必须在其Subversion客户端中设置的内容。为了强制设置此属性,您可以使用我的预提交挂钩,如果您指定的文件没有将您指定的属性设置为正确的值,该挂钩将拒绝提交。

这是一个粗暴的打击,因为它不会纠正问题,但在一两次提交失败后,开发人员会迅速设置他们的自动道具,自动添加所需的属性。


对于Windows上的TortoiseSVN,请在您的用户名/AppData(一个隐藏文件夹)下找到配置文件。例如

%appdata%\漫游\颠覆\配置

添加这些行(可能已经存在,但已注释完毕),然后注销/in:

enable-auto-props = yes
# Add these for each text file type that you use:
*.txt = svn:eol-style=native
*.cs = svn:eol-style=native
*.xml = svn:eol-style=native

(示例是使用XML的C#;替换为您使用的任何文本文件。)

您应该设置svn:eol style属性。

http://tortoisesvn.net/docs/nightly/TortoiseSVN_en/tsvn-dug-propertypage.html

http://svnbook.red-bean.com/en/1.7/svn.advanced.props.file-portability.html#svn.advanced.props.special.eol-样式

自动道具配置设置仅适用于文件,不适用于现有文件。对于那些必须为每个文件设置svn:eol-style属性的文件。

从Tortoise SVN 1.12.0版本,Build 285682019/04/16开始,您可以将As-IS EOL属性分配给整个文件夹。

选择工作区:右键单击:TortoiseSVN->:属性

选择新:EOL

选择原样(无特定EOL)

最新更新