Bitrix + svn + ssh, рабочий процесс над крупным проектом

bitrix svn, bitrix apiПоделюсь опытом по организации работы над крупным проектом команды удаленных разработчиков.

Итак что мы имеем, а имеем мы большой проект на Битриксе, в редакции бизнес. Сначала все так сложилось что все работали прямо на ftp. Как это не прискорбно но это так, и в принципе никто не кому не мешал. Работало примерно 3-4 человека. Но времена меняется, кто-то уходит из проекта по каким то причинам, кто-то приходил.

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

Что для меня правильно, это в первую очередь svn, и полный контроль кода. Так как меня как-то само собой выдвинули вперед, наверное потому что я самый старый на проекте (в смысле больше всех работаю с ним). Это не важно в принципе для меня, я за дело болею, суть в другом.

Итак какие шаги мы пытались сделать к нашей схеме работы.

Первое что пришло в голову это конечно же чтобы каждый скопировал себе проект и развернул у себя. Предполагалось что у каждого своя копия и все сливается в репозитарий svn, и оттуда на dev версию проекта. Но не тут то было, проект я лично развернул у себя, проект большой об этом я уже говорил, база данных чуть больше гига, и столько же файлов сайта. В итоге 2 гигабайта, некоторые коллеги даже не смогли развернуть, слабые машины и тд. Локально сайт работал очень медленно, хотя подразумевалось, что будет быстрее чем на хосте. Естественно все рассчитывали на работу в PHP IDE как с проектом, но из-за огромного количества файлов любая IDE уходила в транс и зависала в таком состоянии часами, при этом если она все таки справлялась любые манипуляции приводили ее в обратное состоянии. В общем не вариант. Да и с базами надо было что-то делать в плане синхронизации.

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

Итак на чем мы все таки останавливались. Я не помню уже откуда это идея появилась, но она внезапно возникла. Смысл вот в чем. Так как все работают удаленно, то всем удобнее работать по ssh/ftp. Понятное дело что на dev сервере этого делать не вариант. Сервер свой, место есть, админ грамотный, вперед!. Решение такое, для каждого делается своя работчая копия сайта например у меня remit.site.ru. Это полная копия проекта слитая с svn. Для всех общая папка /upload/ и база, все остальное у каждого свое. Принцип работы получился простой и надежный. Перед началом работы делаем svn up в конце svn commit, когда считаем нужным сливаем на dev сервер. В таком варианте и удобно, и ведем версионность и в общем порядок.

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

Надеюсь что кому-то пригодится этот опыт.

8 thoughts on “Bitrix + svn + ssh, рабочий процесс над крупным проектом

  1. А это не противоречит лицензионному соглашению Битрикс?

      1.  1 копия на системе хостинга, 1 копия для разработки. Это официальные условия Битрикс.

  2. Правильно ли я понимаю, что у вас на каждом домене ***.site.ru, есть своя независимая папка bitrix, и только upload — общий?

    А как вы «накатываете» тогда обновления Битрикс? На некоторый центральный ***.site.ru, а потом копируете по всем поддоменам?

    1. Ядро, конечно тоже общее но выборочно, свои модули компоненты и то с чем каждый может взаимодействовать было у всех свое.

  3. Я бы порекомендовал попробовать Codelobster PHP Edition — это достаточно шустра бесплатная ИДЕ и ее легко настроить под Битрикс
    http://www.codelobster.com

  4. Добрый день. Очень понравилась предложенная схема. Единственный вопрос, может мне кто объяснит, я не понимаю, как сделать общей папку «Upload» (ну и папки ядра) для двух разных копий?

    И ещё вопрос — у вас лицензионный битрикс? Никаких проблем с лицензией не возникает?

    1.  Битрикс лицензионный конечно, нужно настраивать многосатовость, ну и если битрикс не обновлять dev копии то все будет норма, отсюда следует что папки с модулями можно сделать также как и upload, а общим делается с помощью ссылки на папку ln

Comments are closed.