Научная статья на тему 'АНАЛИЗ СИСТЕМ КОНТРОЛЯ ВЕРСИЙ'

АНАЛИЗ СИСТЕМ КОНТРОЛЯ ВЕРСИЙ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
75
5
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
система контроля версий / сравнительный анализ / GitLab / Bitbucket / Gogs / GitBucket / OneDev / Gitea / version control systems / comparative analysis / GitLab / Bitbucket / Gogs / GitBucket / OneDev / Gitea

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Е. Н. Лазаренко, Г. В. Дорохина, Д. А. Гаркуша

В статье выполнен сравнительный анализ систем контроля версий третьего поколения. Проведен анализ современных публикаций и обобщен опыт авторского коллектива. В ре-зультате сформулированы критерии анализа систем контроля версий и функция интегральной оценки систем контроля версий. Оценка систем контроля версий по предложенным критериям и функции интегральной оценки указала на предпочтительность использования системы контроля версий Gitea.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

ANALYSIS ON VERSION CONTROL SYSTEMS

The article presents a comparative analysis of third-generation version control systems. The analysis of modern publications was carried out and the experience of the team of authors was summarized. As a result, the criteria for analysis of version control systems and the function of integral evaluation of version control systems were formulated. Evaluation of version control systems according to the proposed criteria and the integral evaluation function indicated the preference for using the version control system Gitea.

Текст научной работы на тему «АНАЛИЗ СИСТЕМ КОНТРОЛЯ ВЕРСИЙ»

УДК 004.75: 004.056

Е. Н. Лазаренко, Г. В. Дорохина, Д. А. Гаркуша Федеральное государственное бюджетное научное учреждение «Институт проблем искусственного интеллекта» 283048, Донецкая Народная Республика, г. Донецк, ул. Артёма, 118 б

АНАЛИЗ СИСТЕМ КОНТРОЛЯ ВЕРСИЙ

E. N. Lazarenko, G. V. Dorokhina, D. A. Garkusha

Federal State Budgetary Scientific Institution «Institute of Artificial Intelligence Problems» 283048, Donetsk People's Republic, Donetsk, Artem str., 118 b

ANALYSIS ON VERSION CONTROL SYSTEMS

G. М. Лазаренко, Г. В. Дорохина, Д. О. Гаркуша

Федеральна державна бюджетна наукова установа «1нститут проблем штучного штелекту» 283048, Донецька Народна Республка, м. Донецьк, вул. Артема, 118 б

АНАЛ1З СИСТЕМ КОНТРОЛЯ ВЕРС1Й

В статье выполнен сравнительный анализ систем контроля версий третьего поколения. Проведен анализ современных публикаций и обобщен опыт авторского коллектива. В результате сформулированы критерии анализа систем контроля версий и функция интегральной оценки систем контроля версий. Оценка систем контроля версий по предложенным критериям и функции интегральной оценки указала на предпочтительность использования системы контроля версий Gitea.

Ключевые слова: система контроля версий, сравнительный анализ, GitLab, Bitbucket, Gogs, GitBucket, OneDev, Gitea.

The article presents a comparative analysis of third-generation version control systems. The analysis of modern publications was carried out and the experience of the team of authors was summarized. As a result, the criteria for analysis of version control systems and the function of integral evaluation of version control systems were formulated. Evaluation of version control systems according to the proposed criteria and the integral evaluation function indicated the preference for using the version control system Gitea.

Key words: version control systems, comparative analysis, GitLab, Bitbucket, Gogs, GitBucket, OneDev, Gitea.

У статт виконано порiвняльний аналiз систем контролю версш третього поколЫня. Проведено аналiз сучасних публкацш та узагальнено досвщ авторського колективу. В результат сформульовано критерп аналiзу систем контролю версш та функцю ЫтегральноТ' оцшки систем контролю версш. Оцшка систем контролю версш за запропонованими критерiями та функци штегральноТ оцшки вказала на перевагу використання системи контролю версш Gitea. Ключовi слова: система контроля верс1й, пор1вняльний анал1з, GitLab, Bitbucket, Gogs, GitBucket, OneDev, Gitea.

Введение

В современных условиях система контроля версий является необходимым инструментом разработки программного обеспечения. История систем контроля версий насчитывает более пятидесяти лет, а сами системы делят на три поколения. Системы первого поколения (SCCS - система управления исходным кодом; RCS -система контроля версий) характеризовались тем, что файлы редактировались только локально и одним пользователем за раз. В системах второго поколения (CVS - система параллельных версий; SVN - Apache Subversion; Perforce Helix Core) появилась поддержка сети и централизованные репозитории хранения данных. Третье поколение (Git; Mercurial; BitKeeper; Darcs - Darcs Advanced Revision Control System; Monotone; Bazaar; Fossil; Pijul) - это распределённые системы контроля версий, где все копии репозитория считаются равными, и отсутствует централизация [1], [2]. В настоящее время используют более двух десятков систем контроля версий [3].

Актуальность исследования состоит в следующем. В современных условиях перед разработчиками программного обеспечения может возникнуть необходимость перехода на новую систему контроля версий, если ранее применялись GitLab или GitHub [4]. При этом важно кроме функциональных возможностей новой системы контроля версий сохранить данные из прежней системы контроля версий и не допустить возможность потерь в связи с действиями недружественных стран. Публикуемые техническая документация, рейтинги и статьи о преимуществах той или иной системы контроля версий при аргументации заявленной позиции используют различные критерии, в то время как при принятии решения необходимо оценивать альтернативы в рамках одной системы критериев. Анализ источников не позволил найти такую систему критериев, что и определило направление исследования.

Объект исследования - системы контроля версий.

Предмет исследования - применимость системы контроля версий для разработки программного обеспечения коллективом разработчиков на территории.

Цель исследования - выбрать приемлемые системы контроля версий при разработке программного обеспечения коллективом разработчиков на территории Российской Федерации (РФ).

Формирование критериев анализа

Для анализа систем контроля версий на основе анализа источников сформулированы следующие критерии.

Критерий 1. «Возможности управления задачами». Управление задачами систем контроля версий предполагает использование системы отслеживания ошибок (issue tracking system), которая помогает управлять задачами, ошибками и другими проблемами, возникающими в процессе разработки. Базовые возможности управления задачами: 1) создание задач - возможность создавать новые задачи, описывая их содержание и приоритетность; 2) назначение исполнителей - возможность назначать исполнителей задач и отслеживать их работу; 3) отслеживание прогресса - возможность отслеживать состояние задач, сроки выполнения, прогресс и другие метрики; 4) добавление меток и категорий - возможность добавлять метки и категории для группировки и классификации задач; 5) комментирование - возможность комментировать задачи, обсуждать их и принимать решения; 6) использование шаблонов -возможность использовать шаблоны задач для стандартизации процесса создания и

описания задач; 7) интеграция с другими инструментами - возможность интеграции системы отслеживания ошибок с другими инструментами разработки, такими как CI/CD системы, системы управления версиями и другие.

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

Оценку системы контроля версий Х по Критерию 1. «Возможности управления задачами» обозначим Bf(X). По каждой из входящих в этот критерий возможностей оценим её наличие у системы X в один балл. Тогда оценку Bf(X) вычислим как сумму баллов X по наличию возможностей из Критерия 1.

Оценка систем контроля версий по данному критерию приведена в таблице 1.

Критерий 2. «Основные функции интерфейса». Данный критерий включает следующие аспекты.

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

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

3. Интерфейс управления репозиториями - позволяет управлять кодовыми ре-позиториями. Включает в себя создание новых репозиториев, управление доступом к репозиториям, установку правил доступа к репозиториям и управление ветвями и тегами в репозиториях.

4. Интерфейс запросов на слияние - позволяет объединять различные ветви кода. Включает в себя создание запросов на слияние, обсуждение изменений, связанных с запросами на слияние, и управление изменениями в процессе слияния.

5. Интерфейс системы задач - позволяет создавать задачи и управлять ими. Включает в себя создание задач, назначение задач конкретным разработчикам, отслеживание статуса задач и управление задачами в рамках проекта.

6. Интерфейс планирования проектов - позволяет планировать работу в рамках проекта. Включает в себя создание планов проекта, определение задач и временных рамок, связанных с проектом, и управление проектом в целом.

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

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

9. Настраиваемость интерфейса - возможность настроить интерфейс под индивидуальные потребности команды.

Оценку системы контроля версий Х по Критерию 2. «Основные функции интерфейса» обозначим Ui(X). Формировать оценку Ui(X) будем по аналогии с правилом формирования оценки Bf(X). Оценка систем контроля версий по данному критерию приведены в табл. 2.

Критерий 3. «Стоимость / распространение / лицензии». Данный критерий включает следующие аспекты: 1) коммерческий продукт (является ли система коммерческим продуктом, необходимо ли его купить для использования); 2) открытый исходный код - является ли система программным обеспечением с открытым исходным кодом; 3) возможность бесплатной установки на свой сервер; 4) наличие платной поддержки разработчиков при необходимости; 5) тип лицензии распространения продукта, на оценку не влияет (дополнительный параметр).

Оценку системы контроля версий Х по Критерию 3. «Стоимость, распространение и лицензии» обозначим Pr(X). Формировать оценку Pr(X) будем по аналогии с правилом формирования оценки Bf(X), учитывая при этом только аспекты 1) - 4). Оценка систем контроля версий по данному критерию приведена в табл. 3.

Критерий 4. «Безопасность». Для обеспечения безопасности система контроля версий должна предоставлять следующие возможности: 1) аутентификация и авторизация пользователей; 2) разграничение доступа к репозиториям и проектам (в случае утечки аккаунта пользователя, у злоумышленника не будет доступа ко всей системе); 3) шифрование данных в пути и на стороне сервера (не позволяет легко получить исходники при перехвате трафика); 4) возможность двухфакторной аутентификации; 5) мониторинг активности пользователей и репозиториев для обнаружения потенциальных угроз безопасности; 6) возможность настройки обнаружения вторжений и предотвращения атак; 7) возможность настройки системы логирования для анализа безопасности (возможность выводить логи не только в консоль, но и в заданный ресурс).

Оценку системы контроля версий Х по Критерию 4. «Безопасность» обозначим Sc(X). Формировать оценку Sc(X) будем по аналогии с правилом формирования оценки Bf(X). Оценка систем контроля версий по данному критерию приведена в таблице 4.

Критерий 5. «Сообщество, актуальность». Поддержка проекта сообществом выражается в наличии большого количества доступной документации, обучающих ресурсов и форумов для обмена знаниями и опытом использования платформы. Популярность проекта в сообществе может в определённой степени служить отражением его актуальности и перспектив использования. В рамках данного критерия рассмотрим следующие аспекты.

1. Популярный регион - это то откуда больше всего пользователей из других стран по тем данным, что дали разработчики. На оценку в данной работе не влияет (дополнительный параметр).

2. Актуальность через 5 лет говорит за то, перестанет ли существовать ли проект в ближайшие 5 лет.

3. Звезды на Github отражают то, как много людей решили сохранить в избранное этот проект, скольким людям он интересен. Упорядочим системы по возрастанию числа звезд, и количество баллов системы по данному аспекту будет соответствовать порядковому её номеру в полученном списке.

4. Число участников проекта - это величина, отвечающая за количество людей, которое приняло хоть какое-то участие над проектом и изменила исходники в репозитории на Github. Упорядочим системы по возрастанию числа участников, и количество баллов системы по данному аспекту будет соответствовать порядковому её номеру в полученном списке.

Оценку системы контроля версий Х по Критерию 5. «Сообщество, актуальность» обозначим A(X). Она равна 0, если по прогнозу система не будет актуальна через 5 лет, иначе оценка A(X) равна сумме баллов по аспектам 2 и 3.

Критерий 6. «Дружелюбие к РФ». Некоторые системы блокируют работу разработчиков из РФ [4]; ожидается, что на работу других проектов, являющихся проектами с открытым исходным кодом, не должна повлиять политика.

Оценку системы контроля версий Х по Критерию 6. «Сообщество, актуальность» обозначим URF(X). Формировать оценку URF(X) будем следующим образом: в случае блокировки работы пользователей из РФ системой X, URF(X) = 0, иначе URF(X) = 1.

Оценки систем контроля версий по критериям 5 - 6 приведены в табл. 5.

Функцию F(X) для интегральной оценки систем контроля версий определим следующим образом:

F(X) = (Bf(X) + Ui(X) + Sc(X) + A(X)) ■ URF(X).

Система X с максимальным значением F(X) является наилучшей.

Оценка систем контроля версий

В исследовании рассмотрены системы контроля версий третьего поколения: Gitbucket [5], Bitbucket [6], GitLab [7], OneDev [8], Gitea [9], Gogs [10]. Данные системы можно разделить на проприетарное программное обеспечение (GitLab, Bitbucket) и свободное (Gitbucket, Gitea, Onedev, Gogs). В табл. 1 - 5 приведём оценку этих систем по сформулированным критериям.

Таблица 1 - Оценка по Критерию 1. «Возможности управления задачами»

Функция GitLab Bitbucket Gogs GitBucket OneDev Gitea

Создание задач + + - + + +

Назначение исполнителей + + - + + +

Отслеживание прогресса + + - + + +

Добавление меток + +/- - + + +

Комментирование + + - + + +

Использование шаблонов + + - - - -

Интеграция + + + + + +

В/Х) 7 6.5 1 6 6 6

Таблица 2 - Оценка по Критерию 2. «Основные функции интерфейса»

Параметры GitLab Bitbucket Gogs GitBucket OneDev Gitea

Удобство интерфейса + + + + + +

Интерфейс отслеживания ошибок + + + + + +

Интерфейс управления + + + + + +

репозиториями

Интерфейс запросов на слияние + + + + + +

Интерфейс системы задач + + +/- + + +

Интерфейс планирования проектов + + - + + +

Интерфейс ревизии кода + + - + + +

Интерфейс средств автоматизации + + - - ++ +

Настраиваемость интерфейса + + + + + +

VI (X) 9 9 6.5 8 10 9

Таблица 3 - Оценка по Критерию 3. «Стоимость / распространение / лицензии»

Параметры GitLab Bitbucket Gogs GitBucket ОпеОеу Gitea

Коммерческий проект + + - - - -

Открытый исходный код +/- - + + + +

Возможность бесплатной + + + + + +

установки на свой сервер

Платная поддержка + + - - + +

Лицензия Gitlab CE/E Atlassian мт М1Т Араске 2.0 МТ

Рг(Х) 3.5 3 2 2 3 3

Таблица 4 - Оценка по Критерию 4. «Безопасность»

Возможности GitLab Bitbucket Gogs GitBucket ОпеОеу Gitea

Аутентификация и авторизация + + + + + +

пользователей

Разграничение доступа к + + + + + +

репозиториям и проектам

Шифрование данных в пути и на + + + + + +

стороне сервера

Возможность двухфакторной аутентификации + + + + + +

Мониторинг активности + + + + + +

пользователей и репозиториев для обнаружения потенциальных угроз безопасности

Возможность настройки обнаружения вторжений и + + - - +/- +

предотвращения атак

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Возможность настройки системы + + + + + +

логирования для анализа безопасности

Бе(Х) 7 7 6 6 6.5 7

Таблица 5 - Оценка по Критерию 5 и Критерию 6

Параметры GitLab Bitbucket Gogs GitBucket ОпеОеу Gitea

Популярный регион Еигоре/ Скта ША/ Еигоре Скта Еигоре Еигоре Еигоре/ Скта

Актуальность через 5 лет + + + - + +

Звезд на github 23.2к - 41.8к 8.9к 1к 35.2к

Участников проекта 1969 - 490 176 25 1166

А(Х 10 2 9 6 4 9

иЯ¥(Х) 0 0 1 1 1 1

Применим к результатам оценки систем по сформулированным критериям 1-6 предложенную функцию F(X) интегральной оценки систем контроля версий.

Полученные интегральные оценки систем контроля версий, приведены в табл. 6. Они показывают, что максимальное значение функция интегральной оценки систем контроля версий F(X) принимает для системы контроля версий Gitea.

Таблица 6 - Интегральная оценка систем контроля версий

Оценка системы X

GitLab Bitbucket Gogs GitBucket OneDev Gitea

Bf(X) 7 6.5 1 6 6 6

Ui (X) 9 9 6.5 8 10 9

Pr(X) 3.5 3 2 2 3 3

Sc(X) 7 7 6 6 6.5 7

A(X) 10 2 9 6 4 9

URF(X) 0 0 1 1 1 1

F(X) 0 0 24,5 28 29,5 34

Выводы

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

Выполнен анализ систем контроля версий, который показал, что предпочтительной системой контроля версий по результатам интегральной оценки, учитывающей возможности управления задачами, основные функции интерфейса, стоимость / распространение / лицензии, безопасность, поддержку сообщества и актуальность, дружелюбие к РФ, является Gitea.

Список литературы

1. Косьяненко, И. А., Болбаков, Р. Г. Об автоматической генерации сообщений к коммитам в системах контроля версий // International Journal of Open Information Technologies ISSN: 23078162. 2022. Vol. 10, no. 4.

2. Stopak J. Version Control Systems: A Technical Guide To VCS Internals [Электронный ресурс] / Stopak J. // Initial Commit: Quality resources and tools for developers :сайт. -

URL: https://initialcommit.com/blog/Technical-Guide-VCS-Internals. Дата публикации: 30.11.2019.

3. What are the best self-hosted web-based Git repository managers? :сайт [Электронный ресурс]. URL: https://www.slant.co/topics/1440/versus/~gitlab_vs_gitea_vs_gogs. Дата публикации: 07.03.2023.

4. Топ 10: Системы контроля версий. Системы управления версиями (VCS) :сайт [Электронный ресурс]. URL: https://www.onlineprojects.ru/tags/sistemy_kontrolia_versij/ Дата публикации: 12.11.2022. ' ' '

5. [Электронный ресурс]. URL: https://gitbucket.github.io/ (дата обращения: 11.03.2023).

6. [Электронный ресурс]. URL: https://bitbucket.org/ (дата обращения: 11.03.2023).

7. [Электронный ресурс]. URL:https://gitlab.com/ (дата обращения: 11.03.2023).

8. [Электронный ресурс]. URL:https://github.com/theonedev/onedev (дата обращения: 11.03.2023).

9. [Электронный ресурс]. URL: https://gitea.io/en-us/ (дата обращения: 11.03.2023).

10. Gogs. [Электронный ресурс]. URL: https://gogs.io/ (дата обращения: 11.03.2023).

11. Деллано Ф. Контроль версий с Git. Пер. с англ. СПб. : Питер, 2014. 368 с.

12. Gitea. [Электронный ресурс]. URL: https://gitea.io/ (дата обращения: 11.03.2023)

13. GitBucket. [Электронный ресурс]. URL: https://github.com/gitbucket/gitbucket (дата обращения: 11.03.2023)

14. Gogs. [Электронный ресурс]. URL: https://gogs.io/ (дата обращения: 11.03.2023)

15. Официальный сайт OneDev [Электронный ресурс]. URL: https://onedev.io/ (дата обращения: 11.03.2023)

16. Scott Chacon, Ben Straub. Pro Git. ISBN: 978-1484200773, 2014.

References

1. Kos'ianenko I.A., Bolbakov R.G. Ob avtomaticheskoi generatsii soobshchenii k kommitam v sistemakh kontrolia versii [About automatic generation of messages for commits in version control systems] International Journal of Open Information Technologies ISSN: 2307-8162 vol. 10, no. 4, 2022.

2. Stopak J. Version Control Systems: A Technical Guide To VCS Internals //Initial Commit: Quality resources and tools for developers :sait.URL: https://initialcommit.com/blog/Technical-Guide-VCS-Internals. Data publikatsii: 30.11.2019.

3. What are the best self-hosted web-based Git repository managers? :sait. - URL: https://www.slant.co/topics/1440/versus/~gitlab_vs_gitea_vs_gogs. Data publikatsii: 07.03.2023.

4. Top 10: Sistemy kontrolia versii. Sistemy upravleniia versiiami (VCS) :sait. - URL: https://www.onlineprojects.ru/tags/sistemy_kontrolja_versij/ Data publikatsii: 12.11.2022.

5. https://gitbucket.github.io/ (data obrashcheniia: 11.03.2023).

6. https://bitbucket.org/ (data obrashcheniia: 11.03.2023).

7. https://gitlab.com/ (data obrashcheniia: 11.03.2023).

8. https://github.com/theonedev/onedev (data obrashcheniia: 11.03.2023).

9. https://gitea.io/en-us/ (data obrashcheniia: 11.03.2023).

10. Gogs. https://gogs.io/ (data obrashcheniia: 11.03.2023).

11. Dellano F. Kontrol' versii s Git. Per. s angl. / F. Dellano. - Sankt-Peterburg : Piter, 2014. - 368 p.

12. Gitea. URL: https://gitea.io/ (data obrashcheniia: 11.03.2023)

13. GitBucket. URL: https://github.com/gitbucket/gitbucket (data obrashcheniia: 11.03.2023)

14. Gogs. URL: https://gogs.io/ (data obrashcheniia: 11.03.2023)

15. Ofitsial'nyi sait OneDev. URL: https://onedev.io/ (data obrashcheniia: 11.03.2023)

16. Scott Chacon, Ben Straub. Pro Git. ISBN: 978-1484200773, 2014.

RESUME

E. N. Lazarenko, G. V. Dorokhina, D. A. Garkusha Analysis on Version Control Systems

A version control system is a necessary tool for software development. The widespread version control systems GitLab and GitHub are no longer supported on the territory of the Russian Federation (RF). This makes it necessary to replace them with similar software. The authors of publications on version control systems identify only individual indicators. But it is necessary to evaluate alternatives within one system of criteria when making a decision. The analysis of the sources did not allow to find such a system of criteria. This determined the direction of the study. The purpose of the study is to select acceptable version control systems for software development by a team of developers on the territory of the Russian Federation.

There are various arguments regarding the advantages and disadvantages of certain version control systems. A systematization of the characteristics of version control systems is proposed. On this basis, the criteria for evaluating these control systems are formulated. It covers such aspects as task management capabilities, basic interface functions, cost/ distribution/licenses, security, community support and relevance, friendliness to the Russian Federation. An integral evaluation function of version control systems is proposed, in which "Friendliness to the Russian Federation" is a restrictive criterion, and the rest are optimization criteria.

The study was conducted on third-generation version control systems: Gitbucket, Bit-bucket, GitLab, Onedev, Gitea, Gogs. The analysis showed that the estimates of the analyzed programs according to Criterion 3. "Cost / distribution / licenses" and Criterion 4. "Security" have a small range of values. According to Criterion 1. "Task Management capabilities" and Criterion 2. "Basic Interface functions", Gogs has minimal ratings. The sum of the scores according to Criteria 1-5 is the maximum for GitLab, however, this system does not meet the restrictive Criterion 6. "Friendliness to the Russian Federation". As a result of the application of the integral evaluation function, the best alternative is Gitea.

A version control system is an important element of the software development and maintenance infrastructure. For developers from the Russian Federation, when choosing a version control system, it is necessary to choose a system that allows importing / exporting projects, and it is also advisable to pay attention to the evaluation of systems according to the following optimization criteria: "task management capabilities", "main interface functions", "cost / distribution / licenses", "security", "support communities and relevance" and according to the restrictive criterion: "friendliness to the Russian Federation".

РЕЗЮМЕ

Е. Н. Лазаренко, Г. В. Дорохина, Д. А. Гаркуша Анализ систем контроля версий

Система контроля версий является необходимым инструментом разработки программного обеспечения. Широко распространённые системы контроля GitLab и GitHub больше не поддерживаются на территории Российской Федерации (РФ). Это обуславливает необходимость их замещения аналогичным программным обеспечением. Авторы публикаций по системам контроля версий выделяют только отдельные показатели. Но необходимо оценивать альтернативы в рамках одной системы критериев при принятии решения. Анализ источников не позволил найти такую систему критериев, что и определило направление исследования. Цель исследования - выбрать приемлемые системы контроля версий при разработке программного обеспечения коллективом разработчиков на территории Российской Федерации.

Известны различные аргументы в отношении достоинств и недостатков тех или иных систем контроля версий. Предложена систематизация характеристик систем контроля версий. На этой основе сформулированы критерии оценки этих систем контроля. Она охватывает такие аспекты, как возможности управления задачами, основные функции интерфейса, стоимость / распространение / лицензии, безопасность, поддержку сообщества и актуальность, дружелюбие к РФ. Предложена интегральная функция оценки систем контроля версий, в рамках которой «Дружелюбие к РФ» является ограничительным критерием, а остальные - оптимизационными.

Исследование проведено на системах контроля версий третьего поколения: Gitbucket, Bitbucket, GitLab, Onedev, Gitea, Gogs. Анализ показал, что что оценки анализируемых программ по Критерию 3. «Стоимость / распространение / лицензии» и Критерию 4. «Безопасность» имеют небольшой разброс значений. По Критерию 1. «Возможности управления задачами» и Критерию 2. «Основные функции интерфейса» Gogs имеет минимальные оценки. Сумма оценок по Критериям 1 -5 максимальна у GitLab, однако данная система не удовлетворяет ограничительному Критерию 6. «Дружелюбие к РФ». По итогу применения интегральной функции оценки наилучшей альтернативой является Gitea.

Система контроля версий является важным элементом инфраструктуры разработки и сопровождения программного обеспечения. Для разработчиков из Российской Федерации при выборе системы контроля версий необходимо выбирать систему, позволяющую осуществлять импорт / экспорт проектов, а также целесообразно обращать внимание на оценки систем по следующим оптимизационным критериям: «возможности управления задачами», «основные функции интерфейса», «стоимость / распространение / лицензии», «безопасность», «поддержку сообщества и актуальность» и по ограничительному критерию: «дружелюбие к РФ».

Статья поступила в редакцию 21.02.2023.

i Надоели баннеры? Вы всегда можете отключить рекламу.