Разработчиците на проекта OpenBSD публикуваха версия на системата за управление на версии Got 0.80 (Game of Trees), при разработката на която основният акцент е върху простотата на устройството и употребата. За съхранение на версионираните данни Got използва хранилище, съвместимо с дисковия формат на хранилищата Git, което позволява работа с хранилището чрез инструментите на Got и Git. Например, с Git могат да се извършват операции, които не са реализирани в Got. Кодът се разпространява под свободната лицензия ISC.
Проектът има за основна цел придружаване на разработката на OpenBSD, имайки предвид спецификата на проекта. Сред другото, в Got се прилагат приетите в OpenBSD правила за осигуряване на безопасност (например, разделение на привилегии и използване на системни повика pledge и unveil) и стил на писане на код. Инструментариумът е предназначен за процес на разработка с централизирано хранилище и локални клонове за разработчици, достъп от външни потребители по SSH и рецензиране на промените по електронна поща.
За управление на версиите се предлага утилита got с познатия набор от команди. За опростяване на работата, утилитата поддържа само минимално необходимия набор от команди и опции, достатъчни за изпълнение на основни операции без излишни усложнения. За разширени операции се предлага да се използва обикновен git. Операциите по управление на хранилището са извлечени в отделна утилита gotadmin, която изпълнява задачи като инициализация на хранилището, опаковане на индекси и почистване на данни. За навигация по данните в хранилището се предлага уеб интерфейс 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, е прекратена; вместо нея за уеб-интерфейса следва да се използва FastCGI реализацията gotwebd, чийто възможности са значително разширени. Например, в gotwebd е добавен шаблонизатор за опростяване на промяната на оформления на страниците, добавена е RSS лента за проследяване на таговете, подобрено е визуализирането на блобове и списъци с комити.
- В командите got log, got diff и tog diff е реализирана поддръжка на изход в формат diffstat.
- Потреблението на памет е намалено чрез ограничаване на броя на таговете, съхранявани в кеша на обектите.
- В got patch е реализирано изтриване на бинарни файлове.
Източник: opennet.ru
