On Jul 29, 2011, at 02:43, Himanshu Raina wrote: > The scenario is like this. I have checked out copy on my local machine. Now > whenever I merge the code the script which ideally should get executed > doesn't execute at all. I modified the script as given below. Only changes I > have done is removed IF loops and it works fine. The permissions are the same. > > -rwxrwx--- 1 svn apache 616 Jul 29 12:41 post-commit > > User/Group for apache is svn:apache > > #!/bin/sh -x > > REPOS="$1" > > DIR=`/usr/bin/svnlook changed $REPOS|head -n1 | cut -d'/' -f2` > > Method=`/usr/bin/svnlook changed $REPOS|head -n1 | awk '{print $1}'`
Your original script showed you using absolute paths to head, cut, awk, which is what you should be doing because the hook script runs with an empty environment and who knows what the $PATH is. > if [ $Method == A ] && [ $DIR == QA ]; then > > TID=`/usr/bin/svnlook changed $REPOS | head -n1 | cut -d"/" -f3` > > /usr/bin/ssh user@172.16.3.2 "cd /newdeploy/Project//config ; cap deploy:php > tagid=$TID" ssh? How will the authentication occur? Obviously if it prompts you for a password there's no way to respond to that prompt. So you'd need ssh keys. Make sure they're in the correct directory for the user that this hook script is running under. > elif [ $Method == M ] && [ $DIR == QA ]; then > > TID=`/usr/bin/svnlook changed $REPOS | head -n1 | cut -d"/" -f3` > > /usr/bin/ssh user@172.16.3.2 "cd /newdeploy/Project/config ; cap deploy:php > tagid=$TID" > > elif [ $Method == D ]; then > > exit > > fi