Logo

31 мая 2020 г.

Переход на Git

Для хранения исходного кода в «Канторовых системах» до недавнего времени использовалась система контроля версий Subversion (SVN). Среди современных разработчиков она считается устаревшей, но в некоторых популярных проектах продолжает использоваться по историческим причинам. Та же причина была и в «Канторовых системах». Когда в 2007 году начиналась разработка, Git не был так популярен, еще не было GitHub. SVN же был хорошо освоен и оказался весьма пригоден для отслеживания версий кода. Подкупала его легкость.

Возможный переход осознавался давно. Пару лет назад изучался вопрос использования Mercurial и Fossil, некоторое внимание привлекала малопопулярная система Pijul. Для облегчения перехода была перестроена историческая часть дерева исходников на соответствующую классической для SVN branches/tags/trunk.

Препятствиями использования Git были:
  • Раздутый дистрибутив со встроенным Perl и MinGW, пытающийся превратить Windows в Linux. 
  • Необходимость использования собственного терминала Git.
  • Отсутствие адекватной графической оболочки, удобной настолько же, как RapidSVN для SVN.
Со временем все препятствия были преодолены разработчиками Git и инструментов под него. Теперь Git не содержит встроенного Perl, давая возможность установить собственный, используемый вне Git. Perl иногда нужен для сборки некоторых открытых библиотек, так что лучше устанавливать его отдельно. Мной используется StrawberryPerl. Есть теперь и возможность вызывать Git из командной строки Windows или любого консольного приложения.

Адекватным графическим интерфейсом для Git оказался GitKraken. Он выводит всё на вкладках, а не в одном большом окне. Лицензия позволяет бесплатно использовать GitKraken в частных проектах с некоторыми ограничениями, некритичными для «Канторовых систем».

Тем самым ситуация 2020 года оказалась похожа на 2007-й, но для Git. Он хорошо освоен, есть графический интерфейс, также освоенный. Что еще надо?

Преимущества Git для «Канторовых систем» следующие:
  • Возможность дополнять коммиты.
  • Возможность переставлять коммиты, менять их порядок.
  • Быстрая работа в сравнении с Mercurial.
  • Популярность среди разработчиков.
В настоящий момент в проекте один разработчик, так что распределенные возможности Git фактически не востребованы. Останутся заделом на будущее.

Для публичного хранилища после некоторых колебаний был выбран GitHub, с расчетом придать больше социальности «Канторовым системам». Посмотрим, как оно окажется на самом деле. Присылайте свои запросы на слияние (pull request) для CoreLite и PE Tool.