С учетом что svn репозитарий и веб сервер находятся на одном и том же сервере, то можно сделать как то так
<VirtualHost *:80>
ServerName www.example.com
DocumentRoot /vhosts/www.example.com/public_html
DirectoryIndex index.html index.php
# Закрываем доступ к служебным папкам VCS
RedirectMatch 404 /\\.(svn|git|hg|bzr|cvs)(/|$)
<Directory /vhosts/www.example.com/public_html>
Options -Indexes
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Производим первоначальную инициализацию
# cd /vhosts/www.example.com/public_html
# svn co file:///var/lib/svn/repos/project1/trunk ./
# chown -R svn:apache /vhosts/www.example.com/public_html
# chmod -R 770 /vhosts/www.example.com/public_html
В данном примере svn репозитайрий работает от пользователя svn
# id svn
uid=497(svn) gid=48(apache) groups=48(apache),497(svn)
Создаем простой post commit hook
# cat /var/lib/svn/repos/project1/hooks/post-commit
#!/bin/sh
umask 002
cd /vhosts/www.example.com/public_html && svn up
После этого, при коммите в репозитарий, данные в папке /vhosts/www.example.com/public_html будут автоматически обновляться.
Насчет постоянного запроса пароля в TurtoiseSVN, то достаточно настроить аутентификацию по ключам, раз уж используется ssh. Для этого достаточно в putty создать сессию с таким же именем, как и имя сервера
И в секции Auth указать путь к private key, конвертировав ключ с помощью puttygen