目前我正在使用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电子邮件文件,必须使用git diff命令。我的问题是
我必须使用的确切git diff命令是什么..?
我把这个命令添加到那个post-receive电子邮件文件中的哪个位置…?
Gitolite中有可用的配置吗?

最佳答案

注意:您可能对新的git multimail脚本感兴趣,该脚本将包含在git1.8.4(2013年7月)中。
commit bc501f69fc6d697968d472afbabe6af97a758b12
git-multimail:改进后接收电子邮件的替代方法
addgit-multimail,一个生成通知电子邮件的工具,用于推送到git存储库。
它在很大程度上与post-receive-email兼容,并建议最终替换该脚本。
git-multimail相对于post-receive-email的优点在README.migrate-from-post-receive-email中描述。
git-multimail在目录中组织。
查看其独立的GitHub project维护位置(即使该项目将集成到contrib/hooks/multimail启动的git1.8.4中)
您添加了:

echo ""
echo "Line of changes:"
git diff --diff-filter=M --find-copies-harder --no-prefix --unified=2 $oldrev..$newrev

您可以在contrib/hooks/multimailpython脚本中添加它,就在git_multimail.py之后。
另外,您可以分叉GitHub project,并为您的diff-tree添加建议一个multimailhook.diffFilterOpts新选项。

09-04 05:17