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