如何在SVN中自动设置属性?

5

我的subversion代码库有一个pre-commit钩子,要求在提交之前所有文件都必须具有SVN属性。

我需要手动设置此属性,使每个文件和文件夹的添加成为一个两步提交的过程。

如何自动化这个过程呢?


虽然我无法提供帮助,但我在SVN中唯一使用的属性是svn:extern。我承认我对您通常设置的属性以及为什么需要它们感到好奇。 - Ray Hayes
2
@Ray:svn:mime-type 是另一个例子。这对于仓库中的 HTTP 链接到 HTML 文档尤其有用:如果没有正确的 MIME 类型,您的浏览器将把它们显示为文本文件而不是呈现页面。 - Wim Coenen
2个回答

8
请查看TortoiseSVN文档中的自动属性设置部分。
您可以像Josh所解释的那样为每个客户端进行本地配置,或者使用tsvn:autoprops属性将配置放在存储库中。后者仅适用于TortoiseSVN客户端。
命令行客户端不支持服务端的自动属性配置。有一些与此相关的更改请求,例如问题1974问题1813

6
这取决于您的客户端。例如,对于TortoiseSVN,以下是设置所有.c、.cpp和.h文件的svn:eol-style的说明:
  1. 进入“开始菜单”,在TortoiseSVN下,选择“设置”。在“常规”选项卡下,单击“编辑”。
  2. 在[miscellany]下,取消注释enable-auto-props = yes
  3. 在[auto-props]下,添加以下行:
    *.c = svn:eol-style=native
    *.cpp = svn:eol-style=native
    *.h = svn:eol-style=native
    *.hpp = svn:eol-style=native
    
对于Linux上的Subversion命令行客户端,请编辑~/.subversion/config,然后执行上述第2步和第3步。

它对我没用,但应该是我的Tortoise或配置有问题。 - Jader Dias
问题在于我写成了 svn:needs-lock=* 而不是 svn:needs-lock=x - Jader Dias
这些自动属性是在添加还是提交时应用的?服务器预提交钩子仍然阻止我提交,所以我认为我需要恢复并重新添加每个文件以设置属性,但我希望有更简单的方法。 - Hashbrown
1
没关系,我刚刚移除并添加了一个有问题的文件,然后它的错误信息就消失了。所以对于其他人来说,这些配置更改只适用于新添加的内容。我将不得不在某个时候提出一个新问题,询问如何“批量重新添加未提交的文件到Tortoise SVN”。 - Hashbrown

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