防止签入到SVN

防止签入到SVN,svn,svn-hooks,Svn,Svn Hooks,我的团队将SVN用于我们的软件平台,我们定期创建标记以帮助保持模块版本的准确性。据我所知,最佳实践是在创建标记后不要修改它。然而,似乎有时诱惑太大,对其中一个标签进行了修改 有没有办法防止这种签入,或者至少让它们成为一种完全的痛苦,这样我们就可以自动阻止它们 谢谢, Joe创建一个预提交钩子,如果标签已经存在,它将拒绝提交。有关实现挂钩的更多详细信息,请参见此处的“实现存储库挂钩”部分: 创建一个预提交挂钩,如果标记已经存在,它将拒绝提交。有关实现挂钩的更多详细信息,请参见此处的“实现存储库挂钩

我的团队将SVN用于我们的软件平台,我们定期创建标记以帮助保持模块版本的准确性。据我所知,最佳实践是在创建标记后不要修改它。然而,似乎有时诱惑太大,对其中一个标签进行了修改

有没有办法防止这种签入,或者至少让它们成为一种完全的痛苦,这样我们就可以自动阻止它们

谢谢, Joe

创建一个预提交钩子,如果标签已经存在,它将拒绝提交。有关实现挂钩的更多详细信息,请参见此处的“实现存储库挂钩”部分:

创建一个预提交挂钩,如果标记已经存在,它将拒绝提交。有关实现挂钩的更多详细信息,请参见此处的“实现存储库挂钩”部分:


我认为您正试图为非技术性问题找到技术解决方案。在弄清楚如何处理这些问题之前,您必须先确定这些签入的原因。如果是在得到团队领导批准的情况下制定的,那么再多的过程都不会阻止将来发生这些事情。另一方面,如果这些签入是由认为自己更了解的团队成员进行的,那么您就需要领导层参与解决流氓开发人员的问题

只有在整个团队明确创建标记后的期望值之后,您才可以使用技术解决方案(如果需要)强制执行这些期望值

至于如何防止签入,在我看来,最简单的解决方案是,一旦创建了标签,将其上的安全设置为只读,以供所有人通过。但是请注意,SVN手册的作者还明确说明了以下关于基于路径的授权的内容:

不过,请注意,经常有 无形(和可见!)成本 与此功能关联。在 可见类别,服务器需要 做更多的工作以确保 用户有读写权限 每个特定路径;一定 在这种情况下,有非常明显的 性能损失。在无形中 类别,考虑你的文化 创建。大多数情况下 某些用户不应该提交 对系统某些部分的更改 那就是社会契约 不需要在技术上 强制执行


我想你是想为一个非技术性问题找到一个技术解决方案。在弄清楚如何处理这些问题之前,您必须先确定这些签入的原因。如果是在得到团队领导批准的情况下制定的,那么再多的过程都不会阻止将来发生这些事情。另一方面,如果这些签入是由认为自己更了解的团队成员进行的,那么您就需要领导层参与解决流氓开发人员的问题

只有在整个团队明确创建标记后的期望值之后,您才可以使用技术解决方案(如果需要)强制执行这些期望值

至于如何防止签入,在我看来,最简单的解决方案是,一旦创建了标签,将其上的安全设置为只读,以供所有人通过。但是请注意,SVN手册的作者还明确说明了以下关于基于路径的授权的内容:

不过,请注意,经常有 无形(和可见!)成本 与此功能关联。在 可见类别,服务器需要 做更多的工作以确保 用户有读写权限 每个特定路径;一定 在这种情况下,有非常明显的 性能损失。在无形中 类别,考虑你的文化 创建。大多数情况下 某些用户不应该提交 对系统某些部分的更改 那就是社会契约 不需要在技术上 强制执行


这不是一个可用的解决方案,因为您必须在每次创建新标记时设置权限。如果您有很多存储库/项目要管理,请使用PITA。是的,我建议的链接中也明确提到了这一点。这不是一个可用的解决方案,因为您必须在每次创建新标记时设置权限。如果你有大量的存储库/项目需要管理,那么就可以使用PITA。是的,我建议的链接中也明确提到了这一点。