*********
-> Go to repository hook directory like /svn/yourepo/hook
-> now copy post-commit.tmpl to post-commit
-> Now edit post-commit to call another script which will executed after every commit.
Enter these lines in post-commit file
REPOS="$1"
REV="$2"
nohup /svn/yourrepo/hooks/script.sh $REPOS $REV >> logfile &
Save this file and make a new file with name script.sh
**************************
Now content of this file will be.
********************************************
#!/bin/sh
REPOS="$1"
REV="$2"
echo >/svn/yourrepo/hooks/mailcontent.txt
REPO_URL_TO_MATCH1="path of branch"
AUTHOR=`svnlook -r $REV author $REPOS`
RESULT1=`svnlook dirs-changed "$REPOS" -r $REV
grep -e "$REPO_URL_TO_MATCH1"`;
echo "Result1 is : $RESULT1";
DATE=`date`;
for pattern in $RESULT1
do
if [ ! -z "$pattern" ];
then
echo "Revision $REV committed on $REPOS" > /svn/yourrepo/hooks/mailcontent.txt
echo "Date: $DATE" >> /svn/yourrepo/hooks/mailcontent.txt
echo "Committer: $AUTHOR" >> /svn/yourrepo/hooks/mailcontent.txt
echo "Repository: $REPOS" >> /svn/yourrepo/hooks/mailcontent.txt
echo "COMMIT MESSAGE:" >> /svn/yourrepo/hooks/mailcontent.txt
echo "----------------" >> /svn/yourrepo/hooks/mailcontent.txt
svnlook log -r $REV $REPOS >> /svn/yourrepo/hooks/mailcontent.txt
echo "CHANGED FILES:" >> /svn/yourrepo/hooks/mailcontent.txt
echo "$pattern" >> /svn/yourrepo/hooks/mailcontent.txt
svnlook changed -r $REV $REPOS >> /svn/yourrepo/hooks/mailcontent.txt
mail -s "New Commit - $REPOS" mail_id@example.com -- -rsendermailid@example.com < /svn/yourrepo/hooks/mailcontent.txt
#rm -rf $MSG
fi
done
*******************************************
TAG
Example Hook script
-> Hook script to send mail on commit
-> SVN commit hook
No comments:
Post a Comment