svn извлечение и обновление без каталога .svn - PullRequest
17 голосов
/ 27 июня 2009

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

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

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

Ответы [ 5 ]

37 голосов
/ 27 июня 2009

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

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

7 голосов
/ 27 июня 2009

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

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

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

2 голосов
/ 26 августа 2011

httpd.conf:

<Directory ~ "\.svn">
    Order allow,deny
    Deny from all
</Directory>
1 голос
/ 27 июня 2009

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

1 голос
/ 27 июня 2009

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

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