Подрывная деятельность и веб-разработка

StackOverflow https://stackoverflow.com/questions/14135

  •  08-06-2019
  •  | 
  •  

Вопрос

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

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

Это было полезно?

Решение

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

Способ развертывания наших приложений (упрощенный)

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

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

Другие советы

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

Более подробная информация приведена в разделе часто задаваемых вопросов по Subversion

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

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

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

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

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

Интересный Статья показывает, как это можно было бы сделать, и это показывает, как скрипты-перехватчики можно использовать с subversion

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top