在推送通知邮件中添加git diff

时间:2012-12-21 01:23:14

标签: git push-notification gitolite git-diff git-post-receive

目前我正在使用gitolite来管理我的存储库和用户。每次推送后我都成功设置了通知邮件。命令是

chmod a+x post-receive-email
cd /path/to/your/repository.git
ln -sf /usr/share/doc/git-core/contrib/hooks/post-receive-email hooks/post-receive

通知邮件仅包含更改摘要。我想在该推送中添加每个修改文件的更改行。我知道编辑该post-receive-email文件并且必须使用git-diff命令。我的问题是

我必须使用的git-diff命令是什么? 我在那个post-receive-email文件中添加该命令的地方..? 有没有可用的gitolite ..?

2 个答案:

答案 0 :(得分:5)

注意:您可能对新的git-multimail脚本感兴趣,该脚本将包含在git1.8.4中(2013年7月)

请参阅commit bc501f69fc6d697968d472afbabe6af97a758b12

git-multimail:改进后接收电子邮件的替代

  

添加git-multimail,这是一种用于生成推送到Git存储库的通知电子邮件的工具   它在很大程度上与post-receive-email插件兼容,并建议最终替换该脚本   git-multimail中描述了post-receive-email相对于git-multimail的优势。

     

contrib/hooks/multimail组织在目录contrib/hooks/multimail

查看其所在的独立README.migrate-from-post-receive-email(即使该项目将集成在echo "" echo "Line of changes:" git diff --diff-filter=M --find-copies-harder --no-prefix --unified=2 $oldrev..$newrev 中,从git1.8.4开始)

您添加了:

diff-tree

您可以在multimailhook.diffFilterOpts之后的GitHub project python脚本中添加它 另外,您可以前往git_multimail.py,并为diff --diff-filter添加建议 {{1}} 新选项。

答案 1 :(得分:0)

根据githooks(5),你可以制作一个post-receive脚本,它获取stdin的每一行(也就是受影响的分支),log在第一个和第二个字段之间的每次提交(每个提交都有cut -d' ' -f1cut -d' ' -f2)和git show

将所有信息存储在变量中并邮寄 - 然后就完成了。

我认为您可以先将post-receive-email挂钩复制到挂钩目录(而不是链接),然后将其修改为新的电子邮件正文。

如果您发布当前的钩子脚本,可能更容易告诉您如何修改它。