设置SVN提交电子邮件的最简单/最佳方法?

设置SVN提交电子邮件的最简单/最佳方法?,svn,svn-hooks,Svn,Svn Hooks,我想为我正在从事的项目设置提交电子邮件,如下所述: 也就是说,使用post-commit钩子向包含提交标题/日志和更改差异的列表发送电子邮件 在Linux机器上最简单的设置方法是什么?我们使用它。我们将特定于存储库的post-commithook脚本符号链接到单个脚本,该脚本反过来调用svnmailer。配置非常简单,使用simple.conf示例配置,您可以在几分钟内启动并运行。请注意,它是用Python编写的,因此这是安装的先决条件 我们的整个post-commit-hook脚本只有几行(

我想为我正在从事的项目设置提交电子邮件,如下所述:

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

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

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

我们的整个post-commit-hook脚本只有几行(请注意,您可以在post-commit-hook中执行其他操作,但我们目前没有):


创建新存储库时,
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
脚本时,您将看到一个用法屏幕,其中包含额外的选项,例如允许修改主题行或发件人地址


请注意,对于Debian,
commit email.pl
脚本位于可选的
subversion工具
包中。

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

我已经考虑过这里提到的解决方案。
commit email.pl
对我来说既简单又好用。但是,我发现这两种解决方案都缺乏正确的格式

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

在Debian/Ubuntu系统上,您可以通过键入以下内容来安装它:

apt-get install libsvn-notify-perl
然后,如果你要向Gmail帐户发送电子邮件,由于Gmail中有奇怪的CSS支持,我强烈建议你应用该补丁,这意味着:

  • 下载
    HTML.pm
    ColorDiff.pm
  • 分别替换为
    /usr/share/perl5/SVN/Notify/HTML.pm
    /usr/share/perl5/SVN/Notify/HTML/ColorDiff.pm
最后,以通常的方式设置
post-commit
hook脚本:

# 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

检查所述的svn mod电子邮件包。svn mod email是一个强大的svn电子邮件通知管理工具,作为Debian归档文件提供。它易于安装、配置和使用。

好吧,这当然是“最简单的”。谢谢如果我两个都能接受,我会接受的。一旦我发现commit-email.pl限制太大,我就会直接跑到svnmailer。再次感谢!好吧,当你这么做的时候,一定要回来改变你接受的答案;)我希望我能对这个问题投两次赞成票:-)这样你会收到非常好的邮件,竖起大拇指+1表示--css内联,该内联应进入主SVN Notify+1尼斯电子邮件格式。电子邮件是如此美好,以至于你迫不及待地要提交!我花了一个小时才把它修好。这很奇怪。最后的解决办法是添加
#/bin/bash
到开头,并用
$1
$2
替换
$REPOS
$REV
!非常感谢!链接已断开!!但不确定为什么有人否决了这个答案?这个链接又起作用了。谢谢你让我知道。
# 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