четверг, 15 марта 2012 г.

Выпуск 8. Hello GIT!

Очередной спец. выпуск.


Hello GIT!

Как я уже писал в новостях Русофта у нас построена вся инфраструктура для использования GIT вместо SVN.

На GIT уже успешно переехал ЕИС, в ближайший месяц-два переедет PortalEngine (движок ЕИС).

Ниже предлагаю части письма, которые я писал нашему ген. директору, когда обосновывал переход на GIT. Они ответят вам на вопрос "Зачем GIT, какой от него PROFIT?" (с нетехнической точки зрения). На многие технические вопросы для программистов я уже ответил в Вики.



Git

GIt - это система работы с исходным кодом (аналог используемого нами сейчас SVN). У неё есть важные технические отличия от SVN.

Углубляться в них не буду. Главное, что они позволяют добавиться нескольких преимуществ в разработке:

  • Возможность изолирования изменения по одной или нескольким задачам (в т.н. "ветку"). При это над веткой может работать несколько человек, а по её готовности и проверке она "вливается" в основной код (основную ветку).
  • Что в свою очередь позволяет более гибко выпускать обновления и исправления на рабочем сервере. Сейчас нередко ситуация когда нужно выпускать очередное обновление, а какая-то одна задача тормозит процесс, но простым способом "выкинуть" её из текущего кода. С Git таких проблем нет. 
  • GIT упрощает Hot Fixes, когда на уже выпущенной на рабочий сервер версии есть ошибки и нужно внести изменения. С SVN часто бывало, что наша разработка уже ушла вперёд и просто так протестировать и выложить исправления мы не можем. С GIT это решается более просто.
  • GIT "поощряет" часты и маленькие "коммиты" (фиксацию изменений), в отличии от SVN где коммит часто у разработчика результат работы за день-два. Чем меньше коммит, чем проще в последующем анализировать историю при поиске ошибок и объединения изменений.
  • В GIT возможна организации различных хитрых подходов к разработке. Например, когда в production (рабочую) версию системы разработчики не могут сами внести изменения, а только через руководителя проекта. Он проверяет изменения и после этого подтверждаю их внесение. Для начала у нас будет коммунизм, но со временем я буду вводить некоторые "бюрократические" схемы.
  • GIT быстрее чем SVN, хотя для нас это не особо критично.
  • С GIT в случае падения сервера с репозиторием, мы сможем полноценно продолжить работу, ничего не потеряв (один из нас может "назвать" себя сервером и работать, как раньше).

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

  • сбор ядра Pe
  • обновление ядра в ЕИС
  • сбор обновлений для рабочего ЕИС



P.S.

Напомню, что с удовольствие опубликую в блоге любые ваши рассуждения на темы, которые могут быть полезны сотрудникам Русофт (с оговоркой, что блог публичный, поэтому обойдетесь без откровенных indside'ов).

Комментариев нет:

Отправить комментарий