проверка и обновление svn без каталога .svn
-
20-08-2019 - |
Вопрос
У меня есть веб-сайт под управлением 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-зеркало веб-сайта, а затем опубликовать способ, описанный в статье, на которую вы ссылаетесь.Однако очевидно, что это не является прямым решением.