Subversion - 如何提交单个文件并使将来的提交忽略对此文件的任何修改



我正在使用 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。这样,人们可以创建新项目,添加此文件,但不能编辑它。

最新更新