Search code examples
githookgitolitegit-post-receive

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


Here is my post-receive hook:

#!/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

And here is the output:

enter image description here

And if I replace oldrev..newrev by oldrev -- newrev, the output is: enter image description here

I need to get folder in which this file(plugin.yml) was modified. Thanks.


Solution

  • First, each hook can simply check its execution path: that will give you the name of the repo.

    Second, the git diff --name-only I mentioned in your previous question will give you the relative path of the file being pushed (including mod1/2).

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

    since the post-receive hook receives oldrev, newrev and ref on standard input.