关于git:如何使Gitolite post-receive hook显示修改后的文件的完整路径?

How can I make Gitolite post-receive hook to show full path to modified file?

这是我收到邮件的钩子:

1
2
3
4
5
6
7
#!/bin/bash

while read oldrev newrev ref; do
        git diff --name-only oldrev..newrev
        git --work-tree=/tmp checkout HEAD -- plugin.yml
        echo -e"Test complete maybe..." | tee >(exec logger)
done

下面是输出:

enter image description here

如果我用oldrev--newrev替换oldrev..newrev,输出是:enter image description here

我需要得到修改这个文件(plugin.yml)的文件夹。谢谢。


首先,每个钩子可以简单地检查其执行路径:这将为您提供repo的名称。

第二,我在前面的问题中提到的git diff --name-only将为您提供被推送的文件的相对路径(包括mod1/2)。

1
git diff --name-only $1..$2

由于后接收钩子接收到标准输入上的oldrevnewrevref