Svn – How to configure SVN to deploy when I commit

deploymentsvn

How can I configure SVN to deploy when I commit? I would like to deploy when I commit

Best Answer

You need to modify the post commit hook. Placed here:

PATH_TO_YOUR_REPO/hooks/post-commit.tmpl

Change it's name (or create a new one and save that one for future reference) to:

PATH_TO_YOUR_REPO/hooks/post-commit

Then chown it and chmod it let your svn user (tipically apache) execute that file:

chown apache.apache PATH_TO_YOUR_REPO/hooks/post-commit
chmod g+x PATH_TO_YOUR_REPO/hooks/post-commit

Assuming you want to export your repo's trunk to a local path, here is what I use to automatically deploy to my testing server, which is also my SVN repo server (I do not recommend using this to deploy to production servers, use a custom script for that). This will look for a **DEPLOY** tag in your commit message and deploy only if that's the case.

#!/bin/sh
REPO="$1"
REV="$2"

if ( svnlook log -r $REV $REPO | grep "**DEPLOY**" ) then
    svn export --force -r $REV "file://$REPO/trunk" /var/www/html/yourapp
fi