git post-receive-email hooks.showrev相当格式化?

时间:2010-07-15 19:43:54

标签: git formatting hook

我正在尝试这样做:

git show --format=format:"parents:%p%ncommit:%h%nauthor:%an%n%N%n%s%n%b" -C; echo

在我的关于git的post-receive-email脚本中的hooks.showrev中

custom_showrev=$(git config hooks.showrev || git show --format=oneline --abbrev-commit -C %s; echo)

使用“标准”接收后电子邮件脚本。它只是给我以下错误:

remote: /home/git/git-core/contrib/hooks/post-receive-email: line 631: parents:0937024: command not found

当我从控制台提交git时。 631行有:

            eval $(printf "$custom_showrev" $onerev)

任何人都知道我在这里做错了什么?

具体来说,我的问题是,你如何使用post-receive-email hook自定义格式?

1 个答案:

答案 0 :(得分:2)

问题在于

eval $(printf "$custom_showrev" $onerev)

printf尝试获取格式字符串并在其中一个%点插入$ onerev,然后评估所有内容。

只需用以下行替换eval行:

git show --format=format:"parents:%p%ncommit:%h%nauthor:%an%n%N%n%s%n%b" -C $onerev

它会起作用。