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

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

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

18.08.2008 03:33:13
8 ОТВЕТОВ
РЕШЕНИЕ

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

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

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

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

3
18.08.2008 03:57:18

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

1
18.08.2008 03:36:43

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

Интересная статья показывает , как это может быть сделано, и это показывает , как крюк скрипты могут быть использованы с подрывным

1
18.08.2008 03:50:11

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

1
18.08.2008 03:52:28

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

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

3
18.08.2008 03:54:54

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

0
18.08.2008 04:13:18

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

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

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

2
18.08.2008 04:56:25

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

0
4.02.2009 18:52:38