Каков наилучший способ заставить файлы жить, используя Subversion на рабочем сервере? - PullRequest
4 голосов
/ 05 ноября 2008

В настоящее время у меня настроена Subversion, чтобы при внесении изменений в Eclipse PDT я мог зафиксировать изменения, и они будут сохранены в / home / administrator / Файл проекта . Этот файл содержит каталоги / branch / tags и / trunk, рекомендуемые subversion. У меня нет проблем с правильной загрузкой файлов в репозиторий, но нужно ли мне «mv» файлы в Linux в / var / www, чтобы заставить их жить на сервере? Есть ли автоматический процесс, чтобы сделать это, что мне не хватает? Я предполагаю, что мы не хотим делать каталог / var / www (работающий на компьютере) хранилищем, но я не знаю.

Ответы [ 5 ]

7 голосов
/ 05 ноября 2008

Вы можете сделать svn export в свой каталог www. Это даст вам «чистую» версию вашего репо без каталогов .svn.

cd /var/www
svn export /home/administrator/MyProject/trunk MyProject

Редактировать: добавление хороших идей из комментариев ...

Некоторые параметры, когда вы хотите обновить экспортированную копию:

  • run svn export --force /home/...../ MyProject это остановит жалобу на перезапись существующих файлов. Этот метод будет означать, что если вы удалите файл из своего хранилища, он все равно останется в вашей папке www.
  • изменить команду SVN для экспорта в новый каталог каждый раз:
    svn export /home/..../ MyProject_20081105
    и затем создайте символическую ссылку на эту папку:
    ln -s MyProject_20081105 MyProject
    Просто удаляйте и создавайте символическую ссылку каждый раз, когда вы «отпускаете». В этом случае каталог экспорта вообще не должен находиться в папке www.
2 голосов
/ 05 ноября 2008

Вы можете просто извлечь копию хранилища в папке / var / www, а затем запустить svn update для нее всякий раз, когда вам потребуется (или переключить ее на новую ветку / тег и т. Д.) , Таким образом, у вас есть одна копия репозитория, извлеченная на вашем локальном компьютере, где вы вносите изменения и обновления, и еще одна копия на вашем веб-сервере.

Использование репозитория SVN также дает вам возможность вернуться к более ранним версиям.

1 голос
/ 05 ноября 2008

Вы также можете создать хук после фиксации, который переместит все файлы, измененные при фиксации, в каталог / var / www.

Вот пример, написанный на python, который загружает измененные файлы на удаленный хост через ftp:

http://svn.haxx.se/dev/archive-2007-08/0287.shtml

0 голосов
/ 05 ноября 2008

Я видел много людей здесь и другие форумы говорят об использовании Capistrano для развертывания, но у меня нет личного опыта с ним.

0 голосов
/ 05 ноября 2008

Вы, вероятно, захотите вспомнить, какие файлы у вас есть на производстве в любой момент времени, поэтому сохраняйте тег release (например, в / project / tags / release). Если вы хотите сделать релиз, скопируйте туда свой ствол. Затем svn экспортирует этот тег выпуска.

Или что-то.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...