Разработчики проекта OpenBSD опубликовали выпуск системы управления версиями Got 0.80 (Game of Trees), при разработке которой основной акцент делается на простоте устройства и использования. Для хранения версионированных данных Got использует хранилище, совместимое с дисковым форматом репозиториев Git, что позволяет работать с репозиторием при помощи инструментариев Got и Git. Например, при помощи Git можно выполнять работы, не реализованные в Got. Код распространяется под свободной лицензией ISC.
Проект ставит основной целью сопровождение разработки OpenBSD с оглядкой на специфику проекта. Среди прочего, в Got применяются принятые в OpenBSD правила обеспечения безопасности (например, разделение привилегий и использование вызовов pledge и unveil) и стиль кодирования. Инструментарий рассчитан на процесс разработки с общим централизованным репозиторием и локальными ветками для разработчиков, внешним доступом по SSH и рецензированием изменений по электронной почте.
Для управления версиями предлагается утилита got с привычным набором команд. Для упрощения работы утилита поддерживает только минимально необходимый набор команд и опций, достаточный для выполнения основных операций без лишних усложнений. Для расширенных операций предлагается использовать обычный git. Операции по управлению репозиторием вынесены в отдельную утилиту gotadmin, выполняющую такие задачи как инициализация репозитория, упаковка индексов и чистка данных. Для навигации по данным в репозитории предлагается web-интерфейс gotwebd и утилита tog для интерактивного просмотра содержимого репозитория из командной строки.
Среди добавленных изменений:
- В серверном процессе gotd, обеспечивающем сетевой доступ к репозиторию, реализована возможность добавления правил для авторизизации операций записи и чтения в привязке к отдельным репозиториям.
- В gotd добавлены новые процессы “listen” и session” для отслеживания обращений к unix-сокету и обработки сеансов. В отдельный дочерний процесс также вынесены операции аутентификации.
- Изоляция фонового процесса gotd переведена с chroot на использование системного вызова unveil. Убрано ограничение по подключению к gotd только пользователей из группы gotsh.
- В gotd реализовано ограничение числа соединений в привязке к uid.
- В gotd.conf добавлены настройки для управления соединениями, а параметр unix_socket’ заменён на ‘listen on’.
- Доступ к информации, показываемой при запуске ‘gotctl info’, теперь предоставляется только пользователю root.
- Прекращена разработка CGI-обвязки над got – gotweb, вместо которой для web-интерфейса следует использовать FastCGI-реализацию gotwebd, возможности которой значительно расширены. Например, в gotwebd добавлен шаблонизатор для упрощения изменения оформления страниц, добавлена лента RSS для отслеживания тегов, улучшено отображение блобов и списков коммитов.
- В командах got log, got diff и tog diff реализована поддержка вывода в формате diffstat.
- Снижено потребление памяти за счёт ограничения числа тегов, хранимых в кэше объектов.
- В got patch реализовано удаление бинарных файлов.