Joh*_*ohn 5 svn post-commit svn-hooks
我想添加一个post commit钩子,这样如果用户提交对特定文件的更改,我将收到电子邮件通知.
有没有人见过这样的例子,或者有可能吗?
我之前已经设置了一个预提交钩子,但这是我的知识限制.
我在github上有一个post-commit钩子就是这样做的,它允许用户(而不是管理员说出他们正在观察哪些文件的更改,以及应该将这些更改发送到哪些电子邮件地址).
您可以将此与我的预提交 - 厨房 - 水槽挂钩结合使用,以确保用户只能编辑自己的监视文件.钩子脚本使用Perl,但它们不需要任何非标准模块,因此它们非常易于使用.
每个用户都有自己的监视文件,语法非常简单:
mail = david@gmail.com
file =**/build.xml
match = [Mm]akefile
Run Code Online (Sandbox Code Playgroud)
该mail行是我想通过电子邮件发送通知的地方.我可以有多个.这file是我正在观看的文件的glob表达式(锚定在表达式的正面和背面).该match行类似,并使用未锚定的Perl正则表达式.
监视文件存储在Subversion存储库中您指定的目录中.这意味着用户可以设置自己的手表.您可以使用我的pre-commit-kitchen-sink挂钩来阻止用户更改其他用户的监视文件:
[file You are only allowed to change their own watch files]
file =/watchfiles/**
permission = read-only
users = @ALL
[file You are only allowed to change their own watch files]
file = /watchfiles/<USER>.cfg
permission = read-write
users = @ALL
Run Code Online (Sandbox Code Playgroud)
该<USER>字符串被解释为用户的ID.
如果我想将post commit hook设置为多个文件,那么我可以设置吗?比如file = ab/build.xml,bb/cs.txt,cc/.我想通过电子邮件通知这些文件
您可以为每个模式添加一行:
email = my@email.com
file = **/ab/build.xml
file = **/bb/cs.txt
file = **/cc/*.*
Run Code Online (Sandbox Code Playgroud)
请记住,fileglob模式锚定到存储库的根目录(/用作根),因此您需要指定完整路径,或使用**/指定该文件的任何路径.
| 归档时间: |
|
| 查看次数: |
9116 次 |
| 最近记录: |