Установка сервера SVN
>>корень репозитория должен быть корнем сайта и после коммита должен быть сразу доступен в браузере

Пожалуй, включу режим зануды и внесу некоторую ясность. Репозиторий — это не просто набор файлов и папок. Репозиторий subversion использует организованную особым образом файловую систему. Обычно файлы хранятся в БД, либо являются файлами определенного формата, так что корень репозитория не может быть корнем сайта.

Что касается использования файлов проекта по прямому назначению, нужно, во-первых, экспортировать рабочую копию(svn checkout). Это уже обычное дерево папок и файлов со скрытой поддиректорией .svn в каждом каталоге дерева. Такая локальная копия имеется у каждого участника проекта, который коммитит в центральный репозиторий. Но и эту копию нельзя использовать на продакшене, так как она содержит эти самые служебные поддиректории .svn. Для того чтобы от них избавиться, экспортируется чистая рабочая копия командой svn export. Вот теперь это ваш проект.

Сейчас как раз разрабатываю веб-проект с помощью svn, могу поделиться как у меня все устроено.
Есть VDS-ка, где крутится сервер svn. Есть две ветки репозитория — trunk и release. На локальном компе рабочая копия, по мере разработки коммичу все в trunk. Все скрипты тестирую на локалхосте. Девелоперская база данных общая, расположена на том же серваке что и svn.
Тут не хватает ключевого слова Continuous Integration она же непрерывная сборка. т.е. нужен промежуточный софт, который в автоматическом режиме (или по нажатию одной кнопки) развернет сайт на нужном порту. Т.е. в вашем случае, я бы порекомендовал настроить два таких скрипта: первый по коммиту разворачивает и перезапускает сайт на девелоперском порту, а второй на «боевом» 80. Примерами таких серверов могут быть CruiseControl, Hudson…
т.е. для каждого сайта будет свой каталог и уж на них можно настраивать апач или иис…
Думаю дальше сами раскрутите решение своей задачи по ключевым словам?