Для 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 будет представлен доклад про новую систему контроля версий.
© OpenNet