Subversion и веб-разработка - PullRequest
       29

Subversion и веб-разработка

9 голосов
/ 18 августа 2008

Я представляю Subversion в нашем интернет-магазине. Я хочу, чтобы проверенные файлы загружались на сервер через FTP (и по мере их использования в Subversion, через SFTP). Файлы отправляются на страницу кандидата на выпуск для тестирования. Для перемещения файлов в производство можно вызвать скрипт.

У меня такой вопрос: как вы передаете файлы на сервер через Subversion? Могу ли я добавить скрипт, который будет выполнять передачу, когда файлы возвращены?

Ответы [ 8 ]

3 голосов
/ 18 августа 2008

Если у вас есть доступ к серверу в оболочке и на нем установлен SVN (или есть возможность установить SVN), то лучшим вариантом может быть просто полностью обойти FTP.

Как мы разворачиваем наши приложения (упрощенно)

  • Разработчики пишут код и проверяют его в транке
  • Периодически, когда ствол стабилен, мы будем делать его снимок в виде тега
  • На сервере svn извлеките тег

Если необходимо внести какие-либо изменения на сервер (или непосредственно на сам живой сервер), тривиально использовать subversion для синхронизации кода

3 голосов
/ 18 августа 2008

Вы хотите создать скрипт, использующий хук post commit в SubVersion. Вы можете либо экспортировать скрипт из своего репозитория, а затем FTP на сервер, либо вы можете просто извлечь его из своего репозитория в рабочий каталог на вашем сервере и вызвать «svn update» в рабочем каталоге серверов в вашем скрипте подключения после фиксации. .

Больше информации в FAQ по Subversion

2 голосов
/ 18 августа 2008

Я думаю, что вы, вероятно, должны использовать svn export вместо svn checkout для развертываний, поэтому у вас нет этих .svn каталогов, которые запутывают ваши рабочие задания резервного копирования. svn export - это «чистая» проверка.

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

Вы можете даже использовать что-то вроде Capistrano для автоматизации развертываний. Однако я рекомендую CruiseControl.

1 голос
/ 18 августа 2008

Вероятно, вы можете использовать SVN-хуки для этого. По сути, вы можете настроить свой сервер для запуска сценариев до или после каждой регистрации. Вот прямая ссылка на соответствующий раздел онлайн книги .

1 голос
/ 18 августа 2008

Post-commit скрипты полезны для этого. По существу, при каждом коммите после события вызывается скрипт, который вы можете использовать для выполнения экспорта в SVN куда угодно.

Интересная статья показывает, как это можно сделать, а this показывает, как скрипты ловушек можно использовать с subversion

1 голос
/ 18 августа 2008

Я думаю, что вы ищете что-то вроде интеграции с автоматическим сценарием сборки. Я использовал CruiseControl , чтобы сделать то же самое с приложением ASP.Net. Я не знаю ваших точных требований, но держу пари, что вы можете заставить его делать то, что вы хотите.

0 голосов
/ 04 февраля 2009

svn2web будет отправлять файлы ftp или scp из хранилища Subversion на веб-сервер при каждом коммите. Подробности смотрите в проекте SourceForge .

0 голосов
/ 18 августа 2008

Я вторая идея Ориона. Если у вас есть доступ оболочки к серверу, на самом деле очень легко использовать сам Subversion в качестве инструмента развертывания. Просто убедитесь, что у вас настроены некоторые правила веб-сервера, чтобы случайно не открывать каталоги .svn.

...