Re: pre-commit not working at server side push

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Jul 20, 2011 at 12:45:38PM +0530, J. Bakshi wrote:
> On Wed, 20 Jul 2011 12:13:56 +0530
> "J. Bakshi" <joydeep@xxxxxxxxxxxxxxx> wrote:
> 
> > Hello list,
> > 
> > I have this bash script to check php syntax error and prevent the commit if there is any
> > 
> > ```````````````````
> > #!/bin/sh
> > 
> > ##php_syntax_check
> > 
> >   for i in $(git diff-index --name-only --cached HEAD -- | grep -E '\.(php|engine|theme|install|inc>
> >         if [ -f $i ]; then
> >                 output=$(/usr/bin/php5 -l $i)
> >                 if [ "$output" == "No syntax errors detected in $i" ];
> >                 then
> >                         echo "PHP syntax check for $i: OK"
> >                 else
> >                         echo "=====================================================================>
> >                         echo "Pause $i for the commit due to PHP parse errors:"
> >                         echo "$output"
> >                         exit 1
> >                 fi
> >         fi
> >     done
> > 
> > ```````````````````

> seems it should be pre-receive hook at the server. So done accordingly but still not working 

Pre-receive runs after objects have been received but before branches are updated. So
it can inspect the newly arrived commits but the branches retain their old values.

- Firstly, the server does not have index, so diff-index does not do anything sane.
- Secondly, HEAD does not point to anything newly arrived (the hook gets list of update 
instructions via stdin).
- Thirdly, this hook must be prepared for multiple commits in multiple branches appearing at
once.

I think githooks(5) documents what these hooks receive and what they do.

-Ilari
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]