Разработчиците на проекта OpenBSD публикуваха версия 0.80 (Game of Trees) на системата за управление на версии Got, при разработката на която основният акцент е поставен върху простотата на устройството и употребата. За съхранение на версионирани данни 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
