Для OpenBSD развивается новая git-совместимая система контроля версий Got

Стефан Сперлинг (stsp@), участник проекта OpenBSD с десятилетним стажем, а также один из главных разработчиков Apache Subversion, разрабатывает новую систему контроля версий «Game of Trees» (got). При создании новой системы приоритет отдаётся простоте устройстрова и простоте использования, а не гибкости. Сейчас Got ещё находится в разработке; он разрабатывается исключительно на OpenBSD и его целевой аудиторией являются разработчики OpenBSD. Код распространяется под свободной лицензией ISC (эквивалент упрощённой лицензии BSD и MIT).

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

Основной текущей целью проекта называется взаимодействие с разработчиками OpenBSD, которые хотят регулярно использовать got для своей работы над OpenBSD, и улучшение операций управления версиями на основе полученной от них обратной связи.

Основные принципы проекта:

  • Следование правилам безопасности и стилю кодирования OpenBSD;
  • Процесс разработки, основанный на рецензировании кода по электронной почте;
  • Использование pledge(2) и unveil(2) во всей кодовой базе;
  • Использование разделения привилегий при парсинге данных репозитория по сети или с диска;
  • Поддержка кодовой базы под лицензией BSD.

Долгосрочные цели:

  • Сохранение совместимости с дисковым форматом репозитория git (без сохранения совместимости с инструментарием);
  • Предоставление полного набора инструментов управления версиями для OpenBSD:
    • Интуитивно понятный интерфейс командной строки для выполнения необходимых операций управления версиями (got)
    • Интерактивный браузер репозитория для анализа истории и обзора зафиксированных изменений (tog)
    • CGI-скрипт, реализующий веб-интерфейс — браузер репозитория
    • Инструменты администрирования репозиториев с сильным акцентом на резервное копирование и восстановление
    • Сервер репозитория для хостинга центрального репозитория и синхронизации изменений с каскадом публичных и частных зеркал
  • Требования к рабочему процессу разработчиков OpenBSD:
    • Сильная встроенная поддержка централизованной модели репозитория;
    • Для разработчиков, которым не нужны ветки (branch), сохраняется простота использования;
    • Поддержка локальных веток для разработчиков, которые в них нуждаются;
    • Поддержка релизных веток «-stable»;
    • Прочие функции, необходимые для построения инфраструктуры проекта OpenBSD.
  • Реализация аутентифицированных и шифрованных сетевых соединений:
    • Доступ к репозиториям по SSH и дополнительно TLS для клонирования репозитория и получения изменений;
    • Доступ к репозиториям только по SSH для внесения изменений;
    • Доступ к репозиториям невозможен через незашифрованные соединения.

    Got уже добавлен в дерево портов как «devel/got«. На EUROBSDCON 2019 будет представлен доклад про новую систему контроля версий.

    Источник: http://www.opennet.ru/opennews/art.shtml?num=51265