2008-08-18 4 views
9

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

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

ответ

3

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

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

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

Если какие-либо изменения должны быть сделаны на сервере (или непосредственно на самом живом сервере) это тривиально использовать подрывную для синхронизации кода

1

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

1

Post commit scripts полезны для этого. По существу при каждом фиксации скрипт вызывается после события, которое вы можете использовать для экспорта svn в любое место.

Интересный article показывает, как это может быть сделано, и this показывает, как крюк можно использовать сценарии с подрывной

1

Вы, вероятно, можно использовать SVN «зацепки», чтобы сделать это. В принципе, вы можете настроить сервер для запуска скриптов до или после каждой проверки. Вот прямая ссылка на соответствующий раздел online book.

3

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

There's more information in the Subversion FAQ

0

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

2

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

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

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

0

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