I'm writing post-receive hook basing on the post-receive-email
script from the contrib
dir, but it seems that the oldrev
and newrev
arguments are empty.
The script looks like this:
#!/bin/bash
oldrev=$(git rev-parse $1)
newrev=$(git rev-parse $2)
The script runs on push, but all $1
, $2
, $oldrev
and $newrev
are empty. Should I configure something to get it running?
(The repository was created by gitolite
if it does matter)
I stumbled into this problem while setting up a continuous integration server. Since the arguments are not passed to post-receive via the command line, but are passed over STDIN, you have to use the read command to fetch them. Here is how I did it:
#!/bin/sh
read oldrev newrev refname
BRANCH=${refname#refs/heads/}
curl --request POST "http://my.ci.server/hooks/build/myproject_$BRANCH"