我正在使用 Doxygen 从 Subversion 存储库中签出C++源代码中的注释构建文档。 作为构建的一部分,Doxygen用于构建输出文件\html\index.html。
我希望签入默认的\html\index.html解释如何构建文档。签入后,我希望任何提交都忽略对此文件的修改。
有没有办法使用 SVN 属性来做到这一点,以便提交将忽略 \html\index.html如果它看起来被修改了?
提前感谢,
-艾德
没有任何内置机制可以告诉提交忽略某些文件。如SVN所述:有没有办法将文件标记为"不提交"?如果您使用的是 TortoiseSVN,您可以使用"忽略提交"更改列表,但这不会阻止其他人提交更改,除非他们所有人都使用该更改列表。
不过,解决您的问题的一种可能方法是在服务器上svn lock
该文件(没有工作副本!),并且永远不要解锁它。这将防止其他人对该文件进行任何更改,除非他们窃取了锁。
显然,如果您需要对模板/说明文件进行更改,则需要先窃取服务器上的锁或打破锁,然后在完成后再次锁定文件。
您可以使用预提交钩子将文件标记为不可提交。用户可以更改文件,但如果他们尝试提交更改,提交将被拒绝。这比使用更改列表更自动,后者不仅必须逐个用户完成,而且还意味着您必须为每个工作目录执行此操作。在某个地方,有人会不小心做出改变。
我只是碰巧有这样一个预先提交的钩子。它是Perl的,通常默认在Unix/Linux/Mac上可用,并且可以免费用于Windows。您只需设置一个控制文件即可防止更改;
[file You do not have the ability to modify this index.html file.]
file = **/html/index.html
access = read-only
users = @ALL
[file Allow yourself to edit this file]
file = **/html/index.html
access = read-write
users = ed
您还可以使用允许用户创建此文件但从不编辑它的add-only
。这样,人们可以创建新项目,添加此文件,但不能编辑它。