我已经成功地为 post-commit 钩子实现了 post-commit 电子邮件通知。现在我正在研究一个更大的问题,我不希望钩子为每次提交发送电子邮件。有没有办法使用钩子将电子邮件的内容写入文本文件,并可能使用另一个钩子或其他东西来发送文本文件?
我基本上想发送一封包含多个提交信息的电子邮件。
谢谢,奥德。
我已经成功地为 post-commit 钩子实现了 post-commit 电子邮件通知。现在我正在研究一个更大的问题,我不希望钩子为每次提交发送电子邮件。有没有办法使用钩子将电子邮件的内容写入文本文件,并可能使用另一个钩子或其他东西来发送文本文件?
我基本上想发送一封包含多个提交信息的电子邮件。
谢谢,奥德。
首先,您必须决定何时实际发送电子邮件:
然后你应该能够轻松地实现一个你需要的方案:
revision number % 10 == 0
您可以使用和svn log
选项按日期或修订号收集所需信息。有关更多信息,请参阅svnbook。svn diff
-r FROM:TO
您可以修改 post-commit 电子邮件发件人脚本以在某些提交后发送电子邮件(例如修订号是 5 的倍数)
为了帮助编写脚本,您可以使用 svnlook 来获取以前的修订日志。
这是我编写的用于向开发人员发送 SMS 的 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 存储库中获取日志信息