Научная статья на тему 'ОБЗОР И СРАВНЕНИЕ ХОСТИНГОВ ДЛЯ GIT-РЕПОЗИТОРИЕВ: BITBUCKET, GITHUB И GITLAB'

ОБЗОР И СРАВНЕНИЕ ХОСТИНГОВ ДЛЯ GIT-РЕПОЗИТОРИЕВ: BITBUCKET, GITHUB И GITLAB Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
1738
160
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
GIT / РЕПОЗИТОРИЙ / ЛИНУС ТОРВАЛЬДС / КОД

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Грузин Никита Андреевич, Голубничий Артем Александрович

В статье дается сравнение трех хостингов для git-репозиториев. Анализируются их особенности и назначения. Рассматриваются возможности, достоинства и недостатки.

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

Текст научной работы на тему «ОБЗОР И СРАВНЕНИЕ ХОСТИНГОВ ДЛЯ GIT-РЕПОЗИТОРИЕВ: BITBUCKET, GITHUB И GITLAB»

УДК 004.514

Информационные технологии

Грузин Никита Андреевич, студент, Хакасский государственный

университет им. Николая Федоровича Катанова, Россия, г. Абакан Голубничий Артем Александрович, научный руководитель, старший преподаватель кафедры ПОВТиАС, Хакасский государственный университет им. Николая Федоровича Катанова, Россия, г. Абакан

ОБЗОР И СРАВНЕНИЕ ХОСТИНГОВ ДЛЯ GIT-РЕПОЗИТОРИЕВ:

BITBUCKET, GITHUB И GITLAB

Аннотация: в статье дается сравнение трех хостингов для git-репозиториев. Анализируются их особенности и назначения. Рассматриваются возможности, достоинства и недостатки.

Ключевые слова: Git, репозиторий, Линус Торвальдс, код.

Abstract: The article compares three hosting for git repositories. Their features and purpose are analyzed. Possibilities, advantages and disadvantages are considered.

Keywords: Git, repository, Linus Torvalds, code.

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

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

Git был создан Линусом Торвальдсом в 2005 году для разработки ядра Linux, при этом другие разработчики ядра внесли свой вклад в его первоначальную разработку. Как и в большинстве других распределённых систем контроля версий, и в отличие от большинства клиент-серверных систем, каждый Git-каталог на каждом компьютере представляет собой полноценный репозиторий с полной историей и возможностями отслеживания версий, не зависящий от сетевого доступа или центрального сервера [1]. Git - это свободное программное обеспечение с открытым исходным кодом, распространяемое под Стандартной Общественной Лицензией GNU версии 2.

Bitbucket

Bitbucket - это веб-сервис хостинга репозиториев контроля версий, принадлежащий Atlassian, для исходного кода и проектов по разработке, использующих системы контроля версий Mercurial или Git. Bitbucket предлагает, как коммерческие планы, так и бесплатные аккаунты. Он предлагает бесплатные аккаунты с неограниченным количеством приватных репозиториев, которые могут иметь до пяти пользователей в случае бесплатных аккаунтов.

Bitbucket в основном используется для кода и его проверки. Bitbucket поддерживает следующие функции:

- Pull запрос с обзором кода и комментариями

- «Bitbucket Pipelines», служба непрерывной доставки

- Двухэтапная проверка и обязательная двухэтапная проверка

- Белый список IP

- Проверки слияния

- Поиск кода

- Git Large File Storage

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

- Отслеживание проблем

- Вики

- Статические сайты, размещенные в Bitbucket Cloud: статические сайты, имеют домен bitbucket.io в своем URL.

- Дополнения и интеграции

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

- Сниппеты, которые позволяют разработчикам делиться фрагментами кода или файлами

- Умное зеркалирование

GitHub

GitHub, Inc. является дочерней компанией Microsoft, которая предоставляет хостинг для разработки программного обеспечения и контроля версий с помощью Git. Он предлагает функциональность Git^ по распределённому контролю версий и управлению исходными кодами, а также собственные возможности. Он предоставляет контроль доступа и несколько функций для совместной работы, таких как отслеживание ошибок, запросы функций, управление задачами, непрерывная интеграция и вики для каждого проекта. Штаб-квартира компании находится в Калифорнии, а с 2018 года она является дочерним предприятием Microsoft.

GitHub предлагает свои основные услуги бесплатно. Его более продвинутые профессиональные и корпоративные услуги являются коммерческими. Бесплатные аккаунты GitHub обычно используются для размещения проектов с открытым исходным кодом [3]. С января 2019 года

GitHub предлагает неограниченное количество частных репозиториев для всех планов, включая бесплатные аккаунты, но разрешает размещать до трёх участников на каждый репозиторий. Начиная с 15 апреля 2020 года, бесплатный план позволяет иметь неограниченное количество участников, но ограничивает частные репозитории 2000 минутами действий в месяц. По данным на январь 2020 года, GitHub насчитывает более 40 миллионов пользователей и более 190 миллионов репозиториев, включая не менее 28 миллионов публичных репозиториев, что делает его крупнейшим хостом исходного кода в мире.

Основная цель GitHub - облегчить контроль версий и аспекты отслеживания проблем при разработке программного обеспечения. Ярлыки, контрольные точки, распределение ответственности и поисковая система доступны для отслеживания проблем. Для управления версиями Git позволяет pull запросами предлагать изменения в исходный код. Пользователи, у которых есть возможность просматривать предлагаемые изменения, могут видеть разницу в запрошенных изменениях и одобрять их. В терминологии Git это действие называется «committing», и один из его экземпляров - «commit». История всех коммитов сохраняется и может быть просмотрена позже.

Кроме того, GitHub поддерживает следующие форматы и функции:

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

- Вики

- GitHub Actions, который позволяет создавать конвейеры непрерывной интеграции и непрерывного развертывания для тестирования, выпуска и развертывания программного обеспечения без использования сторонних веб-сайтов/платформ.

- Диаграммы: участники, коммиты, частота кода, перфокарта, сеть, участники

- Справочник интеграций

- Уведомления по электронной почте

- Обсуждения

- Возможность подписать кого-то на уведомления, упомянув их.

- Эмодзи

- Вложенные списки задач в файлах

- Визуализация геопространственных данных

- Файлы SD-рендеринга, которые можно предварительно просмотреть с помощью новой интегрированной программы просмотра файлов STL, которая отображает файлы на «SD-холсте». Программа просмотра работает на WebGL и Three.js

- Собственный формат PSD Photoshop можно предварительно просмотреть и сравнить с предыдущими версиями того же файла

- Программа просмотра PDF-документов

- Оповещения системы безопасности об известных распространенных уязвимостях и уязвимостях в разных пакетах

Условия использования GitHub не требуют, чтобы проекты общедоступного программного обеспечения, размещенные на GitHub, соответствовали определению открытого исходного кода. Условия обслуживания гласят: «Устанавливая публичный просмотр ваших репозиториев, вы разрешаете другим просматривать и создавать ваши репозитории».

GitLab

GitLab - это веб-инструмент жизненного цикла DevOps, предоставляющий Git-репозиторий, функции вики, отслеживания проблем и непрерывной интеграции и развёртывания, используя лицензию с открытым исходным кодом, разработанную GitLab Inc. Программное обеспечение создано украинскими разработчиками Дмитрием Запорожецем и Валерием Сизовым.

Первоначально код был написан на языке Ruby, затем некоторые его части были переписаны на языке Go, первоначально как решение для

управления исходным кодом для совместной работы в команде по разработке программного обеспечения. Позднее он превратился в комплексное решение, охватывающее жизненный цикл разработки программного обеспечения, а затем - весь жизненный цикл DevOps. Текущий стек технологий включает в себя Go, Ruby on Rails и Vue.js.

Он следует модели разработки с открытым ядром, где основной функционал выпускается по лицензии с открытым исходным кодом MIT, а дополнительный функционал - по проприетарной лицензии [4].

Ключевые различия между Bitbucket, GitHub и GitLab

Ключевым отличием всех этих трех платформ - Bitbucket, GitHub и GitLab - является поддержка репозиториев с открытым исходным кодом в платформе. Из всех трёх платформ GitLab - единственная, которая поддерживает репозитории с открытым исходным кодом, так же она предоставляет пользователю возможность увидеть полный код на официальном сайте. На платформе GitHub, несмотря на то, что существует большая категория свободных проектов с открытым исходным кодом, которые не относятся к репозиториям с открытым исходным кодом, так же существует большое количество свободных проектов с открытым исходным кодом, которые помогают связать людей, с похожими интересами. Bitbucket можно использовать автономно, получив возможность приватного размещения своего проекта, но возможность создания репозитория с открытым исходным кодом на платформе Bitbucket отсутствует [5].

Следующим различием между всеми этими платформами является импорт репозиториев. Для платформы управления репозиториями она должна иметь возможность импортировать репозитории из других платформ. В случае с Bitbucket пользователь может импортировать репозитории с платформы Mercurial. В GitHub также поддерживаются эти функции, и пользователь также может импортировать репозитории с других платформ. Но в случае с GitLab пользователь может импортировать репозитории только с платформы git. Если

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

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

Bitbucket поддерживает функцию pull запроса, которая помогает загрузить проект из платформы. GitHub также поддерживает функцию pull запроса и помогает пользователю получить проект с платформы. В GitLab такая функция pull запроса отсутствует, и вместо нее в платформе GitLab поддерживается merge запрос.

Сниппет кода может быть использован совместно в платформах Bitbucket и GitLab, в то время как в GitHub сущность кода разделяется между пользователями. Фрагмент кода может быть общедоступным, приватным или внутренним. Сниппет исходного кода может помочь пользователю получить основную идею и может быть использован в проекте.

Теперь давайте проведём сравнение между Bitbucket и Github и Gitlab в таблице ниже.

Таблица 1 - Сравнительная таблица хостингов для git-репозиториев.

Фактор сравнения Bitbucket GitHub GitLab

Бесплатные приватные репозитории Bitbucket предоставляет пользователям функциональность бесплатных приватных В платформе GitHub такой функциональности нет. GitLab также предоставляет пользователям функциональность бесплатных приватных

репозиториев. репозиториев.

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

Merge запрос или шаблоны проблем В платформе Bitbucket такой функциональности нет. Пользователь может запросить Merge запросы и шаблоны проблем.

Встроенные функции CI (Continuous Integration) Встроенные функции Continuous Integration предусмотрены на Bitbucket. В GitHub такой функциональности нет. Если пользователь хочет использовать эту возможность, можно воспользоваться сторонним приложением. Встроенные функции Continuous Integration предусмотрены на GitLab.

Открытый исходный код Платформа Bitbucket не является открытой. Эта платформа предоставляет некоторые функции, но полностью платформа не является открытой. Платформа GitHub также не является платформой с открытым исходным кодом, и пользователь имеет ограниченные бесплатные возможности в этой платформе. GitLab - это платформа с открытым исходным кодом, и пользователи могут использовать все функции без каких-либо затрат.

Удобство навигации В платформе Bitbucket такой функционал не предусмотрен. Удобство использования навигации предусмотрено в платформе.

Файловое хранилище большого размера Все платформы способны обеспечить возможность хранения файлов большого размера.

Интеграция сторонних инструментов Все платформы способны интегрировать в платформу инструменты сторонних производителей.

Анализ проектов Пользовател и могут видеть график анализа проекта и диаграмму сгорания задач в Bitbucket. Для платформы GitHub такой функционал не предусмотрен, а возможности пользователя ограничены. Пользовател и могут видеть график анализа проекта и диаграмму сгорания задач в GitLab.

Вывод

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

Библиографический список:

1. Официальный сайт Bitbucket [Электронный ресурс] URL: https://bitbucket.org/product/features (дата обращения: 08.01.2021).

2. Официальный сайт git [Электронный ресурс] URL: https://git-scm.com/ (дата обращения: 08.01.2021).

3. Официальный сайт GitHub [Электронный ресурс] URL: https://github.com/features (дата обращения: 08.01.2021).

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

5. Bitbucket vs Github vs Gitlab Infographics [Электронный ресурс] URL: https://www.educba.com/bitbucket-vs-github-vs-gitlab/ (дата обращения: 08.01.2021).

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