Стефан Сперлинг (stsp@ (https://stsp.name/)), участник проекта OpenBSD с десятилетним стажем, а также один из главных разработчиков Apache Subversion, разрабатывает (https://cvsweb.openbsd.org/cgi-bin/cvsweb/ports/devel/got/Ma... новую систему контроля версий "Game of Trees" (https://gameoftrees.org/) (got). При создании новой системы приоритет отдаётся простоте устройстрова и простоте использования, а не гибкости. Сейчас Got ещё находится в разработке; он разрабатывается исключительно на OpenBSD и его целевой аудиторией являются разработчики OpenBSD. Код распространяется под свободной лицензией ISC (https://en.wikipedia.org/wiki/ISC_license) (эквивалент упрощённой лицензии BSD и MIT).
Для хранения версионированных данных в Got используются git-репозитории. В настоящее время поддерживаются только локальные операции управления версиями. При этом, git может использоваться для любой функциональности, которая ещё не реализована в got - работать с got и git в одном репозитории всегда будет возможно.
Основной текущей целью (https://gameoftrees.org/goals.html) проекта называется взаимодействие с разработчиками OpenBSD, которые хотят регулярно использовать got для своей работы над OpenBSD, и улучшение операций управления версиями на основе полученной от них обратной связи.
Основные принципы проекта:
- Следование правилам безопасности и стилю кодирования OpenBSD;
- Процесс разработки, основанный на рецензировании кода по электронной почте;
- Использование pledge (https://www.opennet.ru/opennews/art.shtml?num=43295)(2 (https://man.openbsd.org/pledge)) и unveil (https://www.opennet.ru/opennews/art.shtml?num=49042)(2 (https://man.openbsd.org/unveil)) во всей кодовой базе;
- Использование разделения привилегий при парсинге данных репозитория по сети или с диска;
- Поддержка кодовой базы под лицензией BSD.
Долгосрочные цели:
- Сохранение совместимости с дисковым форматом репозитория git (без сохранения совместимости с инструментарием);
- Предоставление полного набора инструментов управления версиями для OpenBSD:
- Интуитивно понятный интерфейс командной строки для выполнения необходимых операций управления версиями (got (https://gameoftrees.org/got.1.html))
- Интерактивный браузер репозитория для анализа истории и обзора зафиксированных изменений (tog (https://gameoftrees.org/tog.1.html))
- CGI-скрипт, реализующий веб-интерфейс - браузер репозитория
- Инструменты администрирования репозиториев с сильным акцентом на резервное копирование и восстановление
- Сервер репозитория для хостинга центрального репозитория и синхронизации изменений с каскадом публичных и частных зеркал
- Требования к рабочему процессу разработчиков OpenBSD:
- Сильная встроенная поддержка централизованной модели репозитория;
- Для разработчиков, которым не нужны ветки (branch), сохраняется простота использования;
- Поддержка локальных веток для разработчиков, которые в них нуждаются;
- Поддержка релизных веток "-stable";
- Прочие функции, необходимые для построения инфраструктуры проекта OpenBSD.
- Реализация аутентифицированных и шифрованных сетевых соединений:
- Доступ к репозиториям по SSH и дополнительно TLS для клонирования репозитория и получения изменений;
- Доступ к репозиториям только по SSH для внесения изменений;
- Доступ к репозиториям невозможен через незашифрованные соединения.
Got уже добавлен (https://cvsweb.openbsd.org/cgi-bin/cvsweb/ports/devel/got/Ma... в дерево портов как "devel/got (https://cvsweb.openbsd.org/cgi-bin/cvsweb/ports/devel/got/)&.... На EUROBSDCON 2019 (https://2019.eurobsdcon.org/) будет представлен доклад (https://2019.eurobsdcon.org/talk-speakers/#trees) про новую систему контроля версий.
URL: https://undeadly.org/cgi?action=article;sid=20190810123007
Новость: https://www.opennet.ru/opennews/art.shtml?num=51265