我创建了一个挂钩,当开发人员将更新推送到其共享存储库时,它会发出通知电子邮件。此电子邮件包括修改过的文件列表,例如:Git plumbing命令查找给定修订版本中哪些文件已被更改
A __classes/Page/Activity.php
M __config/Scheme.php
,我产生使用bash的以下位:
$(git diff "$newrev"^ "$newrev" --name-status)
这工作得很好。但是,我试图将所有这些移植到知名的post-receive-email hook。这个钩子有一个hooks.showrev
配置指令,但是我认为这只允许在命令中使用修订号(%s
)一次。所以这是行不通的:
showrev = "git diff %s^ %s --name-status"
必须有一个'管道'命令来做到这一点。任何人都可以将我指向正确的方向吗? :)
谢谢,它确实做我想做的!聪明,设置格式为空。 :)我现在试图让命令显示'[commit message] \ n \ n> [date] \ n> [hash]',但它还没有工作。我在命令行上使用'showrev ='git log -1 --format ='%b%n%n>%ad%n>%H'%s“'完成了这个操作,但是我收到了一些错误关于'%n'。 – Rijk
这些确切的错误:'remote:printf:739:%n:invalid directive','remote:eval:1:语法错误:未终止的带引号的字符串'。任何想法如何解决这个问题? – Rijk
@Rijk:尝试使用'%% n'代替'printf'格式的字符串,这就是你如何转义'%'符号。 –