* pre-commit not working at server side push @ 2011-07-20 6:43 J. Bakshi 2011-07-20 7:15 ` J. Bakshi 2011-07-20 7:18 ` Ilari Liusvaara 0 siblings, 2 replies; 7+ messages in thread From: J. Bakshi @ 2011-07-20 6:43 UTC (permalink / raw) To: git@vger.kernel.org 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 ``````````````````` Running fine when placed it at local copy. I have placed the hook at the server under hooks directory and provided the execute permission also $ chmod a+x hooks/pre-commit But even with wrong php syntax I am able to push the file. Have I missed something ? Thanks ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: pre-commit not working at server side push 2011-07-20 6:43 pre-commit not working at server side push J. Bakshi @ 2011-07-20 7:15 ` J. Bakshi 2011-07-20 7:30 ` Ilari Liusvaara 2011-07-20 7:18 ` Ilari Liusvaara 1 sibling, 1 reply; 7+ messages in thread From: J. Bakshi @ 2011-07-20 7:15 UTC (permalink / raw) Cc: git@vger.kernel.org On Wed, 20 Jul 2011 12:13:56 +0530 "J. Bakshi" <joydeep@infoservices.in> 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 > > ``````````````````` > > Running fine when placed it at local copy. > > I have placed the hook at the server under hooks directory and provided the execute permission also > > $ chmod a+x hooks/pre-commit > > But even with wrong php syntax I am able to push the file. Have I missed something ? > > Thanks seems it should be pre-receive hook at the server. So done accordingly but still not working ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: pre-commit not working at server side push 2011-07-20 7:15 ` J. Bakshi @ 2011-07-20 7:30 ` Ilari Liusvaara 2011-07-20 7:45 ` J. Bakshi 0 siblings, 1 reply; 7+ messages in thread From: Ilari Liusvaara @ 2011-07-20 7:30 UTC (permalink / raw) To: J. Bakshi; +Cc: git@vger.kernel.org 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@infoservices.in> 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 ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: pre-commit not working at server side push 2011-07-20 7:30 ` Ilari Liusvaara @ 2011-07-20 7:45 ` J. Bakshi 2011-07-20 9:03 ` J. Bakshi 0 siblings, 1 reply; 7+ messages in thread From: J. Bakshi @ 2011-07-20 7:45 UTC (permalink / raw) To: Ilari Liusvaara; +Cc: git@vger.kernel.org On Wed, 20 Jul 2011 10:30:17 +0300 Ilari Liusvaara <ilari.liusvaara@elisanet.fi> wrote: > 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@infoservices.in> 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 Thanks for your clarification. As a newbie I am interested to know any such pre-receive hook which can check php syntax before php. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: pre-commit not working at server side push 2011-07-20 7:45 ` J. Bakshi @ 2011-07-20 9:03 ` J. Bakshi 0 siblings, 0 replies; 7+ messages in thread From: J. Bakshi @ 2011-07-20 9:03 UTC (permalink / raw) To: J. Bakshi; +Cc: Ilari Liusvaara, git@vger.kernel.org On Wed, 20 Jul 2011 13:15:33 +0530 "J. Bakshi" <joydeep@infoservices.in> wrote: > On Wed, 20 Jul 2011 10:30:17 +0300 > Ilari Liusvaara <ilari.liusvaara@elisanet.fi> wrote: > > > 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@infoservices.in> 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 > > Thanks for your clarification. As a newbie I am interested to know any such pre-receive hook which can check php syntax before php. The script given at the link below is working fine http://git.661346.n2.nabble.com/Odd-results-writing-a-Git-pre-receive-hook-to-syntax-check-PHP-files-td5471120.html But it doesn't show where the error is. The part actually checking the error is `````````` function syntaxCheckFile($blob,$filename) { $needle = '/(\.php|\.module|\.install)$/'; if (preg_match($needle,$filename)) { #echo "Checking $filename\n"; $dummy = array(); exec("git show $blob|/home/php/bin/php -l",$dummy,$checkrcval); if ($checkrcval != 0) { echo "There was a syntax error in '$filename'. Rejecting this attempted merge!\n"; exit(1); } } } `````````` can we modify it so that it shows the error too ? PS: I am not a php guy ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: pre-commit not working at server side push 2011-07-20 6:43 pre-commit not working at server side push J. Bakshi 2011-07-20 7:15 ` J. Bakshi @ 2011-07-20 7:18 ` Ilari Liusvaara 2011-07-20 7:21 ` J. Bakshi 1 sibling, 1 reply; 7+ messages in thread From: Ilari Liusvaara @ 2011-07-20 7:18 UTC (permalink / raw) To: J. Bakshi; +Cc: git@vger.kernel.org On Wed, Jul 20, 2011 at 12:13:56PM +0530, J. Bakshi wrote: > Hello list, > > I have this bash script to check php syntax error and prevent the commit if there is any <snip> > Running fine when placed it at local copy. > > I have placed the hook at the server under hooks directory and provided the execute permission also > > $ chmod a+x hooks/pre-commit > > But even with wrong php syntax I am able to push the file. Have I missed something ? Pre-commit runs on commit, not on push. And push is not commit. -Ilari ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: pre-commit not working at server side push 2011-07-20 7:18 ` Ilari Liusvaara @ 2011-07-20 7:21 ` J. Bakshi 0 siblings, 0 replies; 7+ messages in thread From: J. Bakshi @ 2011-07-20 7:21 UTC (permalink / raw) To: Ilari Liusvaara; +Cc: git@vger.kernel.org On Wed, 20 Jul 2011 10:18:07 +0300 Ilari Liusvaara <ilari.liusvaara@elisanet.fi> wrote: > On Wed, Jul 20, 2011 at 12:13:56PM +0530, J. Bakshi wrote: > > Hello list, > > > > I have this bash script to check php syntax error and prevent the commit if there is any > > <snip> > > > Running fine when placed it at local copy. > > > > I have placed the hook at the server under hooks directory and provided the execute permission also > > > > $ chmod a+x hooks/pre-commit > > > > But even with wrong php syntax I am able to push the file. Have I missed something ? > > Pre-commit runs on commit, not on push. And push is not commit. > > -Ilari Thanks, already figured it out, it would be pre-receive on server; but still not working. ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2011-07-20 9:22 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2011-07-20 6:43 pre-commit not working at server side push J. Bakshi 2011-07-20 7:15 ` J. Bakshi 2011-07-20 7:30 ` Ilari Liusvaara 2011-07-20 7:45 ` J. Bakshi 2011-07-20 9:03 ` J. Bakshi 2011-07-20 7:18 ` Ilari Liusvaara 2011-07-20 7:21 ` J. Bakshi
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).