我的团队在我们的软件平台上使用SVN,我们会定期创建标签以帮助保持模块版本的正确性。据我所知,最佳做法是在创建标签后不修改标签。然而,似乎有时候诱惑太大了,并且对其中一个标签进行了修改。
有没有办法阻止这类检查,或至少让它们彻底痛苦,以便我们可以自动阻止它们?
谢谢, 乔
答案 0 :(得分:7)
创建一个预提交挂钩,如果标签已经存在,它将拒绝提交。有关实现钩子的更多细节可以在这里找到(参见实现存储库钩子部分):
http://svnbook.red-bean.com/nightly/en/svn.reposadmin.create.html
答案 1 :(得分:2)
您正在尝试为非技术问题找到技术解决方案。在确定如何处理这些签到之前,您必须确定这些签到的原因。如果它们是在团队领导的批准下制定的,那么任何程序都不会阻止它们在未来发生。另一方面,如果这些签到是由认为他们更了解的个别团队成员做出的 - 那么,您将获得领导力来解决流氓开发者的问题。
只有在整个团队明确了标签创建后的预期后,您才能通过技术解决方案(如果需要)强制执行这些期望。
至于如何防止签入 - 在我看来,最简单的解决方案是,一旦你创建了标签,通过path-based authorization将每个人的安全性设置为只读。但请注意,SVN Book的作者还明确说明了基于路径的授权:
但请注意,经常有 无形(和可见!)成本 与此功能相关联。在里面 可见类别,服务器需要 做更多的工作来确保 用户有权阅读或写作 每条特定的路径;在某些 情况,非常明显 性能损失。在无形中 类别,考虑你的文化 创建。大多数时候,同时 某些用户不应提交 改变了某些部分 存储库,即社会契约 不需要技术上的 执行。