设置SVN提交电子邮件的最简单/最好的方法是什么?

时间:2009-02-01 22:14:01

标签: svn svn-hooks

我想在我正在处理的项目上设置提交电子邮件,如下所述:
  http://producingoss.com/en/vc.html#commit-emails

也就是说,使用post commit hook将电子邮件发送到包含提交标题/日志和更改差异的列表。

在Linux机器上设置它的最简单方法是什么?

4 个答案:

答案 0 :(得分:34)

虽然这个问题有点陈旧,但我想我会留下来自谷歌那些人的意见:

我考虑过这里提到的解决方案。 commit-email.pl更容易,也更适合我。但是,我发现这两种解决方案都缺乏正确的格式。

因此,svnnotify包似乎可以为我生成足够好的格式化和彩色电子邮件。

在Debian / Ubuntu系统上,您可以输入以下命令安装它:

apt-get install libsvn-notify-perl

然后,如果您要向Gmail帐户发送电子邮件,由于Gmail支持奇怪的CSS,我强烈建议您应用补丁found here,这意味着:

  • 下载HTML.pmColorDiff.pm
  • 分别替换为/usr/share/perl5/SVN/Notify/HTML.pm/usr/share/perl5/SVN/Notify/HTML/ColorDiff.pm

最后,以通常的方式设置post-commit钩子脚本:

# email notifications for commits
/usr/bin/svnnotify --repos-path "$REPOS" --revision "$REV" \
    --to your.email@address.com \
    --from from.email@address.com \
    --with-diff \
    --subject-cx \
    --subject-prefix 'Your Project Name: ' \
    --handler HTML::ColorDiff \
    --css-inline
    2>&1 &

exit 0

答案 1 :(得分:18)

创建新存储库时,hooks/post-commit.tmpl中提供了一个示例提交后挂钩。它包含一个看起来或多或少像这样的行:

/usr/share/subversion/hook-scripts/commit-email.pl "$REPOS" "$REV" commit-watchers@example.org

只需将电子邮件替换为您要向其发送通知的地址,将脚本重命名为hooks/post-commit(删除tmpl扩展名)并使其可执行(chmod a+x)。

当您运行不带任何参数的commit-email.pl脚本时,您将看到一个包含额外选项的使用情况屏幕,例如可以修改主题行或发件人地址。

请注意,如果commit-email.pl脚本位于可选subversion-tools包中,则为Debian。

答案 2 :(得分:10)

我们使用svnmailer。我们将特定于存储库的post-commit钩子脚本符号链接到单个脚本,该脚本又调用svnmailer。配置非常简单,使用simple.conf示例配置,您可以在几分钟内启动并运行。请注意,它是用Python编写的,因此这是安装的先决条件。

我们的整个post-commit钩子脚本只有几行(注意你可能在你的post-commit钩子里做其他的东西,但我们目前没有):

#!/bin/sh

CONFIG="/usr/local/svnmailer/default.conf"
MAILER="/usr/bin/svn-mailer"

# These are passed in by subversion
REPOS="$1"
REV="$2"

"${MAILER}" --commit \
            --config "${CONFIG}" \
            --repository "${REPOS}" \
            --revision "${REV}" \
            --background

答案 3 :(得分:-1)

检查here所述的 svn-mod-email 包。 svn-mod-email 是一个功能强大的SVN电子邮件通知管理工具,以Debian存档的形式提供。它易于安装,配置和使用。