我正在检查具有 Linux 风格行结尾的文件(只是 LF 字符)。当我在 Windows 中使用 TortoiseSVN 签出文件时,它会将行尾转换为 Windows 样式 (CR+LF)。我尝试将这些行添加到 subversion 配置文件以强制它使用 LF,是的,我确实设置了 enable-auto-props = yes。这不起作用,即使它起作用,也不是我想要的,因为我宁愿让 TSVN 根本不接触文件。照原样复制它们。
4 回答
正如其他人指出的那样,您需要设置svn:eol-style
属性。此属性可以具有三个值:
LF
:结帐和提交时自动将行尾设置为 Unix 行尾。CRLF
:在结帐和提交时自动将行尾设置为 Windows 行尾。native
:这将在提交到 Unix 行尾 (LF
) 时存储行尾,但将使用LF
或CRLF
基于客户端检查行尾。
您可以auto-props
在 $HOME/.subversion/config 文件中设置设置以自动将此属性附加到所有新文件。但是,这是每个用户必须在其 Subversion 客户端中设置的内容。要强制设置此属性,您可以使用我的预提交挂钩,如果您指定的文件没有您指定的属性设置为正确的值,它将拒绝提交。
这是一个粗鲁的大棒,因为它不会纠正问题,但在一两次提交失败后,开发人员会迅速设置他们的自动道具以自动添加所需的属性。
对于 Windows 上的 TortoiseSVN,在您的用户名/AppData(隐藏文件夹)下找到配置文件。例如
%appdata%\roaming\subversion\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
(示例是带有 XML 的 C#;替换为您使用的任何文本文件。)
您应该设置svn:eol-style属性。
http://tortoisesvn.net/docs/nightly/TortoiseSVN_en/tsvn-dug-propertypage.html
auto-props 配置设置仅适用于新文件,不适用于现有文件。对于那些你必须svn:eol-style
为每个文件设置属性。
从 Tortoise SVN 版本 1.12.0、Build 28568、2019/04/16 开始,您可以将 AS-IS EOL 属性分配给整个文件夹。
选择工作区:右键单击:TortoiseSVN ->:属性
选择新:EOL
按原样选择(无特定 EOL)