Тема: Переход на Git (2020-2021)
Для хранения исходного кода в «Канторовых системах» настоящий момент используется система контроля версий Subversion (SVN). Среди современных разработчиков она считается устаревшей, и в некоторых популярных открытых проектах продолжает использоваться по историческим причинам. Та же причина использования SVN и в «Канторовых системах». Когда в 2007 году начиналась разработка, Git не был популярен, еще не было GitHub. SVN же был хорошо освоен и оказался весьма пригоден для отслеживания версий кода. Подкупала и его легкость.
Выбор системы версионирования не является предметом религиозного спора в «Канторовых системах». Пару лет назад уже изучался вопрос использования распределенных систем Mercurial и Fossil, некоторое внимание привлекала малопопулярная система Pijul. Возможный переход планировался, под него даже была перестроена историческая часть дерева исходников на соответствующую классической для SVN branches/tags/trunk.
Ситуация 2020 года похожа на 2007-й, но для Git. Он хорошо освоен, используется в каждодневной разработке на работе. Самое важное — найден адекватный графический интерфейс Git под Windows, соответствующий предъявляемым требованиям. Он также используется в каждодневной работе. Лицензия позволяет использовать его в частных проектах с некоторыми ограничениями, некритичными для «Канторовых систем». В связи с этим рассматривается переход на Git, импорт существующих исходников из SVN, использование GitHub в качестве публичного хранилища кода.
Преимущества Git для «Канторовых систем» следующие:
Возможность дополнять коммиты
Возможность переставлять коммиты, менять их порядок
Быстрая работа (в сравнении с Mercurial)
Популярность среди разработчиков
Пока разработка ведется одним человеком, распределенные возможности Git фактически не востребованы. Останутся заделом на будущее.
Раньше препятствиями использования Git были: большой размер дистрибутива в сравнении с SVN, наличие встроенного Perl, необходимость использования собственного Git-терминала и отсутствие адекватной графической оболочки, удобной настолько же, как RapidSVN для SVN. Сейчас все препятствия преодолены. Дистрибутив Git для Windows относительно изучен. Теперь он не содержит встроенного Perl, давая возможность установить собственный, используемый вне Git. Perl используется для сборки некоторых открытых библиотек из исходников, для чего должен стоять в системе разработчика. На работе используется StrawberryPerl. Найдена также возможность вызывать Git везде, в том числе напрямую из Far.
Наконец, использование GitHub, возможно, придаст больше социальности «Канторовым системам» в среде разработчиков. Хочется надеяться, но веры нет.
Тема открыта для обсуждения, можно высказывать свои аргументы.