我在Windows上使用SVN。默认情况下,存储库路径中的hooks
文件夹中有9个挂钩,如pre-commit
,post-commit
,pre-lock
...
是否有办法实现pre-checkout
和post-checkout
等新的钩子脚本?
我想检查用户是否有权签出相应的文件,如果有任何用户签出存储库中的任何文件或文件夹,我需要发送通知。
所以我需要预先结帐&结账后挂钩。
答案 0 :(得分:1)
您看到的钩子只是被识别的钩子的占位符。是否有人可以签出代码是服务器配置的一部分。
您没有说明Subversion服务器的配置方式,但有三种常规方法svnserve over ssh
,svnserver
和Apache http(s)
。每个都有自己的安全机制,我的偏好是使用Apache over LDAP / ActiveDirectory。这允许用户使用他们的Windows凭据登录,并且我可以使用Windows组来检查安全性。我甚至有一个钩子脚本来处理可以使用Windows组的提交,以查看是否允许用户更改文件。
我从来没有听说过要求在结账时发送电子邮件的要求。 (我有一个可以在提交时发送电子邮件的提交后脚本)。但是,我想可以观察Apache日志文件并根据它发送电子邮件。通常,您不关心结帐。您关心提交,这就是为什么大多数软件会在提交时允许观察者,而不是在结帐时。
对于令人失望的回答感到抱歉。基本上,它是“不,你不能这样做。”
答案 1 :(得分:0)
就“检查权限”而言,您正在寻找的是基于路径的授权。有a good explanation of how to implement it in the Subversion manual。你不需要钩子函数,Subversion的配置允许直接完成。
就“结帐通知”而言,您能更具体地了解您的需求吗?每次有人运行svn checkout
命令时,您是否想要类似电子邮件警报的内容?你最终想要用这个完成什么?听起来可能有更好的方法来解决这个问题。