防止签入SVN

时间:2010-04-13 03:21:39

标签: svn svn-hooks

我的团队在我们的软件平台上使用SVN,我们会定期创建标签以帮助保持模块版本的正确性。据我所知,最佳做法是在创建标签后不修改标签。然而,似乎有时候诱惑太大了,并且对其中一个标签进行了修改。

有没有办法阻止这类检查,或至少让它们彻底痛苦,以便我们可以自动阻止它们?

谢谢, 乔

2 个答案:

答案 0 :(得分:7)

创建一个预提交挂钩,如果标签已经存在,它将拒绝提交。有关实现钩子的更多细节可以在这里找到(参见实现存储库钩子部分):

http://svnbook.red-bean.com/nightly/en/svn.reposadmin.create.html

答案 1 :(得分:2)

您正在尝试为非技术问题找到技术解决方案。在确定如何处理这些签到之前,您必须确定这些签到的原因。如果它们是在团队领导的批准下制定的,那么任何程序都不会阻止它们在未来发生。另一方面,如果这些签到是由认为他们更了解的个别团队成员做出的 - 那么,您将获得领导力来解决流氓开发者的问题。

只有在整个团队明确了标签创建后的预期后,您才能通过技术解决方案(如果需要)强制执行这些期望。

至于如何防止签入 - 在我看来,最简单的解决方案是,一旦你创建了标签,通过path-based authorization将每个人的安全性设置为只读。但请注意,SVN Book的作者还明确说明了基于路径的授权:

  

但请注意,经常有   无形(和可见!)成本   与此功能相关联。在里面   可见类别,服务器需要   做更多的工作来确保   用户有权阅读或写作   每条特定的路径;在某些   情况,非常明显   性能损失。在无形中   类别,考虑你的文化   创建。大多数时候,同时   某些用户不应提交   改变了某些部分   存储库,即社会契约   不需要技术上的   执行。