无论如何让TortoiseSVN按原样离开EOL(线路结尾)?

Bre*_*212 17 svn tortoisesvn newline lf eol

我正在检查具有Linux样式行结尾的文件(只是LF char).当我在Windows中使用TortoiseSVN签出文件时,它会将行结尾转换为Windows样式(CR + LF).我已经尝试将这些行添加到subversion配置文件中以强制它使用LF,是的,我确实设置了enable-auto-props = yes.这不起作用,即使它确实如此,它也不是我想要的,因为我宁愿让TSVN根本不触摸文件.只需按原样复制它们即可.

Dav*_* W. 21

正如其他人指出的那样,您需要设置svn:eol-style属性.此属性可以有三个值:

  • LF:在结帐和提交时自动将行尾设置为Unix行结尾.
  • CRLF:在结帐和提交时自动将行结束设置为Windows行结尾.
  • native:这将在提交到Unix行结尾(LF)时存储行结尾,但是将使用LFCRLF基于客户端检查行结尾.

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

这是一个粗糙的大棒,因为它无法解决问题,但在一两次失败提交后,开发人员会快速设置自动道具以自动添加所需的属性.


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

%APPDATA%\漫游\颠覆\ CONFIG

添加这些行(可能已经在那里,但已注释掉),然后注销/在:

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
Run Code Online (Sandbox Code Playgroud)

(示例适用于带有XML的C#;替换为您使用的任何文本文件.)