# post-receive hook

3 messages from 2008-05-30 to 2008-05-30. Participants: david@lang.hm, Johan Herland.
Thread: https://gitlist.dev/t/13730

## david@lang.hm, 2008-05-30 08:10

Subject: post-receive hook
Message-ID: <alpine.DEB.1.10.0805300108140.4014@asgard.lang.hm>
URL: https://gitlist.dev/e/alpine.DEB.1.10.0805300108140.4014%40asgard.lang.hm

```
I'm trying to setup a post-receive hook to do a checkout -f when I push to 
a public repo (it's a web based tool and I want the executables to be 
updated with a push)

unfortunantly if I just add git checkout -f to the post-receive hooks it 
checks the files out in the .git directory.

if I do a cd .. ; git checkout -f I get an error message complaining that 
it's not in a git repository, but if I manually cd to that directory and 
do a checkout it works.

what am I missing here?

David Lang

```

## Johan Herland, 2008-05-30 09:06

Subject: Re: post-receive hook
Message-ID: <200805301106.33992.johan@herland.net>
URL: https://gitlist.dev/e/200805301106.33992.johan%40herland.net
In-Reply-To: <alpine.DEB.1.10.0805300108140.4014@asgard.lang.hm>

```
On Friday 30 May 2008, david@lang.hm wrote:
> I'm trying to setup a post-receive hook to do a checkout -f when I push to 
> a public repo (it's a web based tool and I want the executables to be 
> updated with a push)
> 
> unfortunantly if I just add git checkout -f to the post-receive hooks it 
> checks the files out in the .git directory.
> 
> if I do a cd .. ; git checkout -f I get an error message complaining that 
> it's not in a git repository, but if I manually cd to that directory and 
> do a checkout it works.
> 
> what am I missing here?

I'm guessing that the post-receive hook is invoked with "GIT_DIR=.", which goes bad the moment you chdir anywhere. I have this in my own update hook script:

if [ "$GIT_DIR" = "." ]; then
	GIT_DIR=`pwd`
fi

If you do this before the "cd .. ; git checkout -f", you might have better luck.


Have fun! :)

...Johan

-- 
Johan Herland, <johan@herland.net>
www.herland.net

```

## david@lang.hm, 2008-05-30 09:43

Subject: Re: post-receive hook
Message-ID: <alpine.DEB.1.10.0805300242460.4014@asgard.lang.hm>
URL: https://gitlist.dev/e/alpine.DEB.1.10.0805300242460.4014%40asgard.lang.hm
In-Reply-To: <200805301106.33992.johan@herland.net>

```
On Fri, 30 May 2008, Johan Herland wrote:

> On Friday 30 May 2008, david@lang.hm wrote:
>> I'm trying to setup a post-receive hook to do a checkout -f when I push to
>> a public repo (it's a web based tool and I want the executables to be
>> updated with a push)
>>
>> unfortunantly if I just add git checkout -f to the post-receive hooks it
>> checks the files out in the .git directory.
>>
>> if I do a cd .. ; git checkout -f I get an error message complaining that
>> it's not in a git repository, but if I manually cd to that directory and
>> do a checkout it works.
>>
>> what am I missing here?
>
> I'm guessing that the post-receive hook is invoked with "GIT_DIR=.", which goes bad the moment you chdir anywhere. I have this in my own update hook script:
>
> if [ "$GIT_DIR" = "." ]; then
> 	GIT_DIR=`pwd`
> fi
>
> If you do this before the "cd .. ; git checkout -f", you might have better luck.

thanks, that solved the problem.

David Lang

```
