我想在我正在处理的项目上设置提交电子邮件,如下所述:http:
//producingoss.com/en/vc.html#commit-emails
也就是说,使用post commit hook将电子邮件发送到包含更改的提交标题/日志和差异的列表.
在Linux机器上设置它的最简单方法是什么?
虽然这个问题有点陈旧,但我想我会对那些来自谷歌的人留下我的看法:
我考虑过这里提到的解决方案.这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
以通常的方式设置钩子脚本:
# 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
在创建新存储库时,提供了一个示例提交后挂钩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-tools
包中.
我们使用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