目前我正在使用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 ..?
答案 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' ' -f1
,cut -d' ' -f2
)和git show
。
将所有信息存储在变量中并邮寄 - 然后就完成了。
我认为您可以先将post-receive-email
挂钩复制到挂钩目录(而不是链接),然后将其修改为新的电子邮件正文。
如果您发布当前的钩子脚本,可能更容易告诉您如何修改它。