2013-12-20 45 views
0

我正在使用Doxygen从C++源代码中的注释构建文档,并从Subversion回购中签出。作为构建的一部分,Doxygen用于构建输出文件\ html \ index.htmlSubversion - 如何提交单个文件并使未来的提交忽略对此文件的任何修改?

我希望检查默认的\ html \ index.html,解释如何构建文档。一旦签入,我想修改这个文件,任何提交都会被忽略。

有没有办法使用SVN属性来做到这一点,以便提交将忽略\ html \ index.html如果它出现修改?

由于提前,

-Ed

+0

[SVN:有没有办法将文件标记为“不提交”?](http://stackoverflow.com/questions/635446/svn-is-there-a-way-to-标记一个文件 - 如-DO-不提交) – Ferruccio

回答

1

我不认为有任何内置的机制来告诉承诺忽略某些文件。如SVN: Is there a way to mark a file as "do not commit"?中所述,如果您使用的是TortoiseSVN,则可以使用“ignore-on-commit”更改列表,但这并不妨碍其他人提交更改,除非所有THEM都使用该更改列表。

虽然你的问题的一个可能的解决方案,将svn lock服务器上的文件(没有工作副本!),只是从来没有解锁它。这会阻止其他人对该文件进行任何更改,除非他们盗取了锁定。

显然,如果您需要对模板/指令文件进行更改,您需要首先窃取锁或破坏服务器上的锁,然后在完成后再次锁定该文件。

2

您可以使用预提交挂钩将文件标记为不可提交。人们可以更改文件,但如果他们尝试提交他们的更改,提交将被拒绝。这比使用更改列表更自动,该列表不仅需要逐个用户完成,还意味着您必须为每个工作目录执行此操作。在某个地方,有人会不小心做出改变。

我只是碰巧有这样一个pre-commit hook。它在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,将让人们创建这个文件,但从未对其进行编辑。这样,人们可以创建新项目,添加此文件,但不能编辑它。

相关问题