Kilka dni temu zapowiedziano wydanie nowej wersji Git 2.3, jeden z najpopularniejszych, niezawodnych i wysokowydajnych systemów kontroli wersji, zapewniający elastyczne nieliniowe narzędzia programistyczne oparte na rozgałęzianiu i scalaniu.
W porównaniu z poprzednią wersją przyjęto 679 zmian w nowej wersji przygotowane przy udziale 85 deweloperów, z których 23 uczestniczyło w opracowaniu po raz pierwszy.
Najważniejsze cechy Git 2.31
W nowej wersji Git 2.31 zaznaczone jest dodanie polecenia „git Maintenance” oferuje nasz konfigurator umożliwia okresową pracę na systemach, które nie obsługują crona. Na przykład za pomocą nowego polecenia można zaplanować okresowe uruchamianie procesu pakowania repozytorium, aby nie trzeba było czekać na zakończenie blokady repozytorium, gdy pakowanie odbywa się automatycznie, gdy uruchamianych jest wiele poleceń.
Kolejną wyróżniającą się zmianą jest to dodano obsługę zachowania odwrotnego indeksu na dysku (Revindex) dla plików pakietów, ponieważ Git przechowuje wszystkie dane w postaci obiektów, które są przechowywane w oddzielnych plikach. Aby usprawnić pracę z repozytorium, obiekty są dodatkowo umieszczane w plikach paczek, w których informacje prezentowane są w postaci ciągu następnych obiektów.
Dla każdego pliku pakietu tworzony jest plik indeksowy (.idx), umożliwiający użycie identyfikatora obiektu aby bardzo szybko określić przesunięcie w pliku pakietu, w którym ten obiekt jest przechowywany. Indeks odwrotny (.rev) zaproponowany w Git 2.31 ma na celu usprawnienie procesu określania identyfikatora obiektu z informacji o położeniu obiektu w pliku pakietu.
Wcześniej taka konwersja była wykonywana w locie podczas analizy z pliku pakietu i był przechowywany tylko w pamięci, który nie pozwalał na ponowne wykorzystanie wspomnianych indeksów i zmuszał do każdorazowego generowania indeksu. Operacja konstruowania indeksu to zmniejszyć skonstruować tablicę par pozycji obiektów i posortować ją według pozycji, co może być czasochłonne w przypadku dużych plików pakietów.
Z drugiej strony możemy to znaleźć dodano optymalizacje wydajności na podstawie wyglądu w formacie pliku karty potwierdzającej, który służy do optymalizacji dostępu do informacji o potwierdzeniach, nowe dane o ilości generowanych potwierdzeń, które mogą posłużyć do przyspieszenia dodatkowych operacji z potwierdzeniami.
Ponadto, dodano możliwość nadpisania domyślnej nazwy gałęzi w nowych repozytoriach (konfiguracja init.defaultBranch). Podczas uzyskiwania dostępu do zewnętrznych repozytoriów git próbuje sprawdzić gałąź, na którą wskazuje HEAD, to znaczy, jeśli serwer zewnętrzny używa domyślnie gałęzi „main”, operacja „git clone” spróbuje znaleźć lokalnie „main”.
Z innych zmian które wyróżniają się:
- Opcja „–disk-use” dodane do polecenia „git rev-list” aby wyświetlić podsumowanie wielkości obiektów.
- Usunięto obsługę przestarzałej biblioteki wyrażeń regularnych PCRE1.
- Zapewnia możliwość wymuszenia zakazu używania skrótów, działających niezależnie od algorytmu haszującego. Zakaz włącza się poprzez przypisanie wartości „no” do parametru core.abbrev.
- Opcja „–path-format” została dodana do polecenia „git rev-parse”, aby jawnie zdefiniować wyjście ścieżek względnych lub bezwzględnych.
- Skrypty autouzupełniania Bash ułatwiają dodawanie reguł uzupełniania do niestandardowych komend „git”.
- Dodano opcję „–stdin” do polecenia „git bundle”, aby odczytać linki ze standardowego strumienia wejściowego.
- Opcje „–left-only” i „–right-only” zostały dodane do polecenia „git range-diff”, aby pokazać tylko jedną stronę porównywanego zakresu.
- Dodano opcję „–skip-to = »Do polecenia« git difftool », aby wznowić przerwaną sesję z dowolnej ścieżki.
- Kodeks postępowania (Code of Conduct), który określa podstawowe zasady rozwiązywania konfliktów między programistami, został zaktualizowany do wersji 2.0 (wcześniej była używana wersja 1.4).
W końcu jeśli chcesz dowiedzieć się więcej na ten temat, możesz się skonsultować poniższy link.