我已经成功实现了提交后挂钩的提交后电子邮件通知。现在我正在考虑一个更大的问题,我不希望钩子为每次提交发送电子邮件。有没有办法使用钩子可能将电子邮件的内容写入文本文件,并可能使用另一个钩子或东西发送文本文件?
我基本上想发送一封包含多次提交信息的电子邮件。
感谢, 奥德。
答案 0 :(得分:3)
首先,您必须决定何时确实要发送电子邮件:
然后,您应该可以根据需要轻松实施方案:
revision number % 10 == 0
您可以使用svn log
和svn diff
-r FROM:TO
选项,按日期或修订号收集所需信息。有关更多信息,请参阅the svnbook。
答案 1 :(得分:1)
您可以修改提交后的电子邮件发件人脚本,以便在一些提交后发送电子邮件(例如,修订号是5的倍数)
为了帮助编写脚本,您可以使用svnlook来获取以前的修订日志。
这是我编写的向开发人员发送短信的Python脚本的一部分:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys, urllib, os
from subprocess import *
repo = sys.argv[2]
rev = sys.argv[3]
cmdlog = 'svnlook log -r %s %s'%(rev, repo)
cmdauthor = 'svnlook author -r %s %s'%(rev, repo)
log = Popen(cmdlog, stdout=PIPE, shell=True).stdout.read().strip()
author = Popen(cmdauthor, stdout=PIPE, shell=True).stdout.read().strip()
在后提交文件中
#!/bin/bash
export LANG=en_US.utf8
REPOS="$1"
REV="$2"
./sms.py commit $REPOS $REV
您可以参考此示例,通过命令 svnlook
从svn存储库获取日志信息