0

我已经成功地为 post-commit 钩子实现了 post-commit 电子邮件通知。现在我正在研究一个更大的问题,我不希望钩子为每次提交发送电子邮件。有没有办法使用钩子将电子邮件的内容写入文本文件,并可能使用另一个钩子或其他东西来发送文本文件?

我基本上想发送一封包含多个提交信息的电子邮件。

谢谢,奥德。

4

2 回答 2

3

首先,您必须决定何时实际发送电子邮件:

  1. 每十次提交?
  2. 在午夜?
  3. 什么时候标注?

然后你应该能够轻松地实现一个你需要的方案:

  1. 在 post-commit 钩子中:仅在以下情况下发送电子邮件revision number % 10 == 0
  2. 创建一个 cron 作业
  3. 在 post-commit 钩子中:在创建标签时检测

您可以使用和svn log选项按日期或修订号收集所需信息。有关更多信息,请参阅svnbooksvn diff-r FROM:TO

于 2009-07-28T06:35:39.227 回答
1

您可以修改 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 存储库中获取日志信息

于 2009-07-28T06:37:32.717 回答