Вопрос

У меня есть веб-сайт под управлением svn, и я хочу исправить текущий веб-сайт с тем, что в настоящее время находится в репозитории (т. Е.эффективно вызывающий svn update на действующем веб-сайте), но я не хочу, чтобы каталоги .svn находились в каждой папке на рабочем веб-сайте.

Есть ли способ настроить svn так, чтобы папка .svn с информацией о версии находилась не в том же каталоге, что и файлы под управлением версиями?

В git вы можете создавать и отсоединять рабочее дерево и отправлять обновления в проект таким образом (в соответствии с http://toroid.org/ams/git-website-howto), я в принципе хочу иметь возможность делать что-то подобное в svn.

Это было полезно?

Решение

svn export работает аналогично a checkout но без .svn каталоги.Однако вы не можете update такая структура, поскольку это не рабочая копия svn.

Вы также можете настроить веб-сервер таким образом, чтобы запретить доступ к .svn каталоги и просто перейдите с помощью метода checkout + update.

Другие советы

Как насчет rsync, настроенного так, чтобы не копировать каталоги ".svn"?

rsync --exclude=.svn local_svn_copy webserver:site/

Это можно повторно запустить, чтобы обновить копию веб-сервера.

httpd.conf:

<Directory ~ "\.svn">
    Order allow,deny
    Deny from all
</Directory>

Как уже упоминал лаалто svn export обеспечивает простой, но не очень эффективный метод обновления "рабочей копии" при многократном использовании:

milen@dev:~$ svn export --non-interactive --force "<URL>" <directory>

Вы также могли бы использовать git-svn создать git-зеркало веб-сайта, а затем опубликовать способ, описанный в статье, на которую вы ссылаетесь.Однако очевидно, что это не является прямым решением.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top