Ostatnio zapowiedziano wydanie nowej wersji rozproszony system kontroli kodu źródłowego Git 2.38, który w porównaniu do poprzedniej wersji zaakceptowano 699 zmian w nowej wersji, przygotowanej przy udziale 92 programistów, z czego 24 brało udział w rozwoju po raz pierwszy.
Osoby niezaznajomione z Git powinny wiedzieć, że to to jeden z najpopularniejszych systemów kontroli wersji, niezawodne i wysokowydajne oprogramowanie, które zapewnia elastyczne nieliniowe narzędzia programistyczne oparte na forkach i połączeniach forków.
Aby zapewnić integralność historii i odporność na wsteczne zmiany, w każdym zatwierdzeniu stosuje się niejawne hashowanie całej poprzedniej historii, możliwa jest również weryfikacja podpisów cyfrowych twórców poszczególnych tagów i zatwierdzeń.
Najważniejsze cechy Git 2.38
W tej nowej wersji Git 2.38, która jest prezentowana, podkreślono, że w zestawie narzędzie skalarne opracowany przez Microsoft do zarządzania dużymi repozytoriami. Narzędzie zostało pierwotnie napisane w C#, ale zmodyfikowana wersja C jest zawarta w git. Nowe narzędzie różni się od polecenia git dodaniem dodatkowych funkcji i ustawień wartości domyślne, które wpływają na wydajność podczas pracy z bardzo dużymi repozytoriami.
Na przykład podczas korzystania ze skalaru obowiązują następujące zasady:
- Częściowy klon do pracy z niekompletną kopią repozytorium.
- Wbudowany mechanizm śledzenia zmian w systemie plików (FSMonitor), który eliminuje konieczność wyświetlania całego katalogu roboczego.
- Indeksy obejmujące obiekty w różnych pakietach plików (multipakiet).
- Pliki wykresów zatwierdzania z indeksem wykresu zatwierdzania używanym do optymalizacji dostępu do informacji o zatwierdzeniu.
- Okresowa praca w tle w celu utrzymania optymalnej struktury repozytorium w tle bez blokowania sesji interaktywnej (raz na godzinę wykonywana jest praca nad pobraniem nowych obiektów ze zdalnego repozytorium i zaktualizowaniem pliku o wykres commit oraz proces pakowania repozytorium jest uruchamiane co noc).
- Tryb „sparseCheckoutCone”, który ogranicza prawidłowe wzorce w częściowym klonowaniu.
Kolejną zmianą zaprezentowaną w nowej wersji Git 2.38 jest Opcja „–update-refs” do polecenia „git rebase” aby zaktualizować zależne gałęzie, które przecinają się z przeniesionymi gałęziami, dzięki czemu nie musisz ręcznie pobierać każdej zależnej gałęzi, aby przełączyć się na żądane zatwierdzenie.
Podkreśla się również, że format pliku bitmapy został zoptymalizowany do pracy z dużymi repozytoriami- Dodano opcjonalną tabelę indeksów z listą wybranych zatwierdzeń i ich offsetów.
Oprócz tego możemy znaleźć to w poleceniu "git merge-tree" implementuje nowy tryb w którym, na podstawie dwóch konkretnych commitów obliczane jest drzewo z wynikiem scalenia, tak jakby historie tych zatwierdzeń zostały połączone.
Konfiguracja dodana "safe.barerepository", aby kontrolować, czy repozytoria nie zawierają drzewa pracy, można je umieścić w innych repozytoriach git. Po ustawieniu na „explicit”, same repozytoria znajdujące się w górnym katalogu będą mogły działać tylko. Aby móc umieścić puste repozytoria w podkatalogach, należy użyć wartości „all”.
Z innych zmian które wyróżniają się na tle nowej wersji:
- Dodano opcję „-m” („–max-count”) do polecenia „git grep”, która jest podobna do opcji GNU grep o tej samej nazwie i pozwala ograniczyć liczbę wyników dopasowania.
- Polecenie „ls-files” implementuje opcję „--format”, aby dostosować pola wyjściowe (na przykład można włączyć wyświetlanie nazwy obiektu, trybów itp.).
- W "git cat-file", podczas wyświetlania zawartości obiektów, zaimplementowana jest możliwość uwzględniania linków autorów do wiadomości e-mail, określonych w pliku mapy poczty.
- Komenda "git rm" dostosowana do indeksów częściowych.
- Poprawiono zachowanie polecenia „git mv AB” podczas przenoszenia pliku z obszaru roboczego z częściowymi indeksami w trybie „stożek” do obszaru zewnętrznego, w którym ten tryb nie jest stosowany.
W końcu jeśli chcesz dowiedzieć się więcej na ten tematmożesz sprawdzić szczegóły W poniższym linku.