Mercurial - наша система контроля версий

Зачем нужна система контроля версий?

Ручное управление несколькими версиями для одного файла — рутинная задача с возможностью ошибок, что уж говорить, когда речь идет о десятка, сотнях или тысячах файлов, которые используются в наших SugarCRM проектах. Для автоматизации этого процесса были созданы программные инструменты, которые называются системами контроля версий (VCS, Version control system). Вот несколько популярных из них: Git, Mercurial, Subversion, CVS.

Есть ряд причин, по которым может потребоваться использовать автоматизированную систему контроля версий для ведения проектов:

  • Она будет отслеживать историю и прогресс вашего проекта вместо вас. Для каждого изменения у вас будет запись о том, кто его сделал, почему он это сделал, когда он это сделал и в чем, собственно, заключалось изменение.
  • Когда вы работаете с другими людьми, система контроля версий облегчает вам взаимодействие. Например, когда несколько человек делают потенциально конфликтные изменения одновременно, программа поможет вам определить и разрешить такие конфликты.
  • Она может помочь вам восстановиться после ошибок. Если вы сделаете изменение, которое потом окажется ошибкой, вы сможете вернуться к более ранней версии одного или нескольких файлов. На самом деле,действительно хорошая система контроля версий даже поможет вам легко найти тот момент времени, когда проблема впервые появилась.
  • Она поможет вам работать одновременно над несколькими версиями проекта и переключаться между ними.
Все эти причины одинаково важны независимо от того, работаете ли вы над проектом в одиночку или вместе с сотней других людей.

Почему мы выбрали Mercurial?

Мы выбрали Mercurial потому что он:

  • Прост в изучении и использовании
  • Легковесный
  • Превосходно масштабируется
  • Имеет хорошую поддержку процесса слияния

Из перечисленных преимуществ Mercurial основное преимущество для нас - хорошая поддержка процесса слияния. Именно это и позволяет нам на основе одного единственного главного репозитория SugarCRM, строить проекты в зависимости от редакции ("SugarCRM Старт", "SugarCRM Профи", "SugarCRM Премиум"), адаптируя под нужды клиента.

Кроме того, при создании полезного модуля в SugarCRM, мы добавляем его в гланый репозиторий. А Mercurial позволяет выполнением нескольких команд, добавить его в репозиторий нужной редакции и в репозиторий разрабатываемого проекта.

Если же мы обнаруживаем какие-либо неполадки в модуле, исправив их, мы легко можем распостранить эти правки по всем репозиториям, где используется данный модуль.

Используя ветвления, мы можем разрабатывать сложные модули (разработка сложно модуля может длиться и по несколько недель), не блокируя репозиторий проекта. И, если потребуется срочно внести правки в текущую версию проекта, можно переключиться на главную ветку и без проблем сделать изменения и затем закачать их на сервер: текущая работа по разработке модуля не будет помехой. После чего можно продолжить разработку сложного модуля.


© 2013 Ведисофт
Москва: +7 (499) 703-04-23
Екатеринбург: +7 (343) 236-60-96
Почта: info_at_vedisoft_dot_info