пятница, 22 июня 2007 г.

Разработка сайта с использованием Subversion

Давно уже я хотел освоить svn и применить его в своих проектах. Да все не было идеи как же это сделать. Цикл разработки софта с использованием subversion был мне понятен. Однако четкого осознания как применять его в вебе не было. Однако, всё постижимо, и теперь я имею представление о цикле разработки.

Вот что получилось:

  1. Предположим, что хостинг у нас есть. И доступ к нему тоже есть, хотя бы и по FTP.
  2. Создаем репозиторий на любом компе. Если веб-сервера свои, то можно рядышком поставить ещё svn-сервер, а можно и на веб-сервере его развернуть. Но это будет ещё не скоро, поэтому сгодится любой комп, хоть даже и тот, на котором кодим. Не суть важно.
  3. Импортируем репозиторий на разработческую машину. Причем на этом же компе стоит весь необходимый софт, типа Apache, MySQL, PHP. Желательно версиями совпадающий с теми, что на хостинге.
  4. Вносим правки, тестируем. Тестировать надо не копию в репозитории, а локальную, чтобы правки вносить пачками, а не по одной строчке.
  5. Импортируем нашу протестированную и отлаженную копию в репозиторий, сопроводив её комментариями.
  6. Заливаем на веб-сервер.

Есть в этом сценарии ряд нюансов. С которыми я ещё до конца не определился.

  1. В какой среде будем разрабатывать. Есть Eclipse. В нём реализована поддержка svn. Если привыкну к нему, он и будет. Если не привыкну, тогда придётся подыскивать какое-нибудь средство для общения с репозиторием. Можно и из bash.
  2. Как заливать на веб-сервер. В идеале, должно быть инкрементальное копирование файлов. Но для этого, заливку надо запускать на веб-сервере. Т.е. на нем давать команду svn update. А для этого, нужен внешний IP для svn-сервера. А это расходы, которые пока хочется нивелировать. Следовательно, придется делать полное копирование. Для эти целей надо будет написать скрипт, который будет:
    • заходить на хостинг
    • скачивать все файлы
    • складывать их в архив на локальной машине
    • удалять их с хостинга
    • заливать на него копию из репозитория посредством svn export.

Вот такие пироги. Буду держать этот пост в тонусе при осуществлении изложенных здесь замыслов. Возможно, всё изменится ;)

3 комментария:

Анонимный комментирует...

>скачивать все файлы
>складывать их в архив на локальной машине
IMHO не нужно, ибо они у тебя в репозитории SVN есть

BTheMad комментирует...

Да, теперь я понял, что можно помечать ветки как "релизные" и бэкапы хостинга делать не нужно. Главное не забывать бэкапить репозиторий ;)

Анонимный комментирует...

Ага.