22

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

4

4 回答 4

25

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

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

您可以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#;替换为您使用的任何文本文件。)

于 2012-07-22T14:19:50.807 回答
3

auto-props 配置设置仅适用于文件,不适用于现有文件。对于那些你必须svn:eol-style为每个文件设置属性。

于 2012-07-22T11:03:25.640 回答
1

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

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

选择新:EOL

按原样选择(无特定 EOL)

于 2019-07-02T14:55:41.727 回答