Svn预提交钩子禁止在非根目录上使用svn:mergeinfo

Stu*_*nge 19 svn pre-commit-hook mergeinfo

我想使用预提交挂钩,阻止开发人员在非根目录上设置svn:mergeinfo.也就是说,我想强制执行svn:mergeinfo 只能在"trunk"或"branches/branchName"这样的目录上设置.开发人员有时需要"提醒"使用根目录的子目录作为合并目标(根据此处列出的最佳实践)并不是一种好的做法.有没有人有这样的钩子脚本或知道我在哪里找到一个?我在Windows环境中,所以批处理或powershell会更好,但任何东西肯定会有所帮助.

pmo*_*mod 7

首先,我建议使用perl或python来完成任务,windows批处理有很多不足之处.

您可以使用http://svn.apache.org/repos/asf/subversion/trunk/tools/hook-scripts/中的一些示例脚本开始.例如,verify-po.py脚本检查文件编码,commit-access-control.pl.in检查作者是否具有提交权限.您可能在脚本中使用svnlook diff(如后一个)来获取目录的更改属性,并使用正则表达式遍历相应的路径,无论它们是分支还是标记.

更新

找到执行器预提交钩子脚本,这似乎是你正在寻找的.

这个脚本的作用是使用svnlook来查看事务的进展情况.在筛选事务时,它会调用一组钩子,这些钩子允许存储库管理员检查正在进行的操作并确定它是否可接受.

它包含几个方法和verify_property_line_added(),因为它被调用添加到文件属性的每一行.