Deweloperzy projektu OpenBSD opublikowali wydanie systemu kontroli wersji Got 0.80 (Game of Trees), którego główny nacisk kładzie na prostotę konstrukcji i użycia. Do przechowywania wersjonowanych danych Got wykorzystuje magazyn zgodny z formatem dysku repozytoriów Git, co pozwala na pracę z repozytorium za pomocą narzędzi Got i Git. Na przykład, za pomocą Gita można wykonywać operacje, które nie są zrealizowane w Got. Kod jest dystrybuowany na licencji ISC.
Projekt ma na celu wsparcie rozwoju OpenBSD z uwzględnieniem specyfiki projektu. W Got stosowane są zasady zapewnienia bezpieczeństwa przyjęte w OpenBSD (np. podział uprawnień oraz wykorzystanie wywołań pledge i unveil) oraz styl pisania kodu. Narzędzie zostało zaprojektowane do pracy w procesie rozwoju z centralnym repozytorium oraz lokalnymi gałęziami dla programistów, z zewnętrznym dostępem przez SSH i recenzowaniem zmian drogą mailową.
Do zarządzania wersjami dostępna jest narzędzie got z typowym zestawem poleceń. Aby uprościć pracę, narzędzie obsługuje tylko minimalny niezbędny zestaw poleceń i opcji, wystarczających do wykonywania podstawowych operacji bez zbędnych komplikacji. Do zaawansowanych operacji należy wykorzystać standardowy git. Operacje związane z zarządzaniem repozytorium przeniesiono do oddzielnego narzędzia gotadmin, które wykonuje takie zadania jak inicjalizacja repozytorium, pakowanie indeksów i czyszczenie danych. Do nawigacji po danych w repozytorium dostępny jest interfejs webowy gotwebd oraz narzędzie tog do interaktywnego przeglądania zawartości repozytorium z poziomu wiersza poleceń.
Wśród dodanych zmian:
- W procesie serwerowym gotd, który zapewnia dostęp sieciowy do repozytorium, wprowadzono możliwość dodawania zasad autoryzacji operacji zapisu i odczytu związanych z poszczególnymi repozytoriami.
- W gotd dodano nowe procesy „listen” i „session” do śledzenia zapytań do gniazda unix i obsługi sesji. Operacje uwierzytelniania zostały przeniesione do oddzielnego procesu podrzędnego.
- Izolacja procesu w tle gotd została przekształcona z chroot na wykorzystanie wywołania systemowego unveil. Usunięto ograniczenie łączenia się z gotd tylko dla użytkowników z grupy gotsh.
- W gotd wprowadzono ograniczenie liczby połączeń w odniesieniu do uid.
- W gotd.conf dodano ustawienia do zarządzania połączeniami, a parametr unix_socket’ został zastąpiony przez ‘listen on’.
- Dostęp do informacji wyświetlanych podczas uruchamiania ‘gotctl info’ jest teraz dostępny tylko dla użytkownika root.
- Zakończono rozwój warstwy CGI dla got - gotweb, zamiast której do interfejsu webowego należy używać implementacji FastCGI gotwebd, której możliwości zostały znacznie rozszerzone. Na przykład w gotwebd dodano system szablonów do ułatwienia zmiany wyglądu stron, dodano kanał RSS do śledzenia tagów oraz poprawiono wyświetlanie blobów i list commitów.
- W poleceniach got log, got diff i tog diff wprowadzono obsługę wyjścia w formacie diffstat.
- Zmniejszono zużycie pamięci poprzez ograniczenie liczby tagów przechowywanych w pamięci podręcznej obiektów.
- W got patch wprowadzono usuwanie plików binarnych.
Źródło: opennet.ru
