I had used No 2 that Phil has mentioned.
What I configured was I made a Working copy on the svn server for every repository just to as for Auto Deployment.
So whenever someone commits to a repository my post-commit script updates the working copy and then the working copy is rsync'd to the Client's Servers using a cron that used to run every 2 mins to rsyen the working copy among different client machines.
I was using Subversion. Here are the commands that I used.
svn co file:///path/to/$SvnRepoName /working/$ProjectName --> A local working copy on svn server
/usr/bin/svn update /working/$PROJECTNAME --> in my post-commit script.
A shell script to rsync /working/$PROJECTNAME among client machines.