
BannerGit 2.42
Zostało to niedawno ogłoszone wydanie nowej wersji Git 2.42, wersja, w której wprowadzono różne ulepszenia, takie jak nowe bitmapy, nowe mechanizmy, poprawki błędów i inne.
W porównaniu z poprzednią wersją, w nowej wersji przygotowanej z udział 78 deweloperówzaakceptowano 453 zmiany, z czego 17 było w fazie opracowywania po raz pierwszy.
Najważniejsze cechy Git 2.42
W tej nowej wersji Git 2.42 zaprezentowanej możemy stwierdzić, że jest ona zaproponowana nowy algorytm za pominięter bitmapy, który odzwierciedla dane o zestawach obiektów dostępnych dla każdego zatwierdzenia. Nowy algorytm zapewnia znaczny wzrost wydajności gdy mapa bitowa nie obejmuje całkowicie jednej z porównywanych gałęzi. W niektórych sytuacjach zastosowanie nowego algorytmu może spowodować przyspieszenie od 2 do 15 razy.
Kolejną nowością Git 2.42 są ulepszenia zaimplementowane w poleceniu „git dla każdego-ref«, z którego zauważono, że teraz zamiast sprawdzać wykluczone odniesienia jeden po drugim, nowa metoda określa początek i koniec każdego zakresu wykluczone i ignoruje je podczas analizowania spakowanego pliku referencyjnego. Wzorzec wykluczania jest określony za pomocą nowej opcji „-Wykluczać«. Dodatkowo opcja „-włączać”, co umożliwia zwrot poszczególnych sztuk z wykluczonego asortymentu.
Poza tym on comando «dla-każdego-ref» otrzymał ulepszeniaCóż, teraz z opcją «-Format» Możliwe jest pokazanie informacji związanych z podpisami GPG, np. osobno można wyświetlić klucz, wydruk klucza i nazwę programisty, który wygenerował podpis cyfrowy.
Należy również zauważyć, że a nowy mechanizm zapisywania nieosiągalnych obiektów (te, do których nie można uzyskać dostępu z żadnej gałęzi lub tagu), ponieważ w tej nowej wersji dodana opcja «gc.recentObjectsHookTo umożliwia skonfigurowanie połączenia z programem zewnętrznym zanim zacznie się wywóz śmieci. Program określony w parametrze gc.recentObjectsHook zwraca listę identyfikatorów obiektów, które moduł zbierający elementy bezużyteczne zabezpieczy przed usunięciem, niezależnie od tego, jak długo znajdują się w repozytorium.
Ponadto podkreśla się powszechne stosowanie tego mechanizmu „indeks rzadki”, obejmujący tylko część repozytorium. Częściowe indeksy mogą poprawić wydajność i zaoszczędzić miejsce w repozytoriach, które wykonują operacje częściowego klonowania (kasa rzadka) lub operować na częściowej kopii repozytorium. W nowej wersji przeniesiono polecenie drzewo różnic używać indeksów częściowych.
W poleceniu «git lista-rekordów", w przypadku korzystania z opcji "--stdin«, aby ułatwić wywoływanie ze skryptów, rozbudowane modyfikatory takie jak «--gałęzie", "--tagi"Y"--piloty» można określić poprzez strumień danych wejściowych, a nie tylko modyfikatory odnoszące się do zatwierdzeń według identyfikatora obiektu.
Zaimplementowano opóźnione usuwanie wiadomości $GIT_DIR/TAG_EDITMSG, co następuje dopiero po pomyślnym zapisaniu etykiety, co rozwiązuje problem kasowania notatki przed wyświetleniem komunikatu o błędzie.
Git 2.42 zawiera także kilka nowych opcji polecenia «git pack-refs» który odpowiada za aktualizację pliku «spakowane-ref» z nowymi luźnymi odniesieniami, które nie są przechowywane. W niektórych scenariuszach (takich jak często aktualizowane lub usuwane odniesienie) przydatne może być wykluczenie tych odniesień z umieszczania ich w pliku „spakowane-ref» Przede wszystkim "git pack-refs» teraz rozumie, jak modyfikować zestaw odniesień, które pakuje, używając swoich flag nowe „–uwzględnij” i „–wyklucz”.
Z innych zmian które wyróżniają się na tle nowej wersji:
- Dodano opcję «-sierota»Do« poleceniagit worktree dodaj» stworzyć działające drzewo w oparciu o osieroconą gałąź.
- Tryb "-Z»Został dodany do« poleceniaplik kota git«, który w odróżnieniu od trybu «-z», stosuje separację opartą na znakach zakodowanych z wartością null (zamiast nowych linii) nie tylko na wejściu, ale także na wyjściu.
- Dodano opcję „--separator'dowodzić'dołącz notatki git», aby wybrać separator akapitu.
- Komenda "git diff --no-index» implementuje możliwość odczytu z nazwanych potoków („git diff <(proces) <(substytut)”).
Na koniec, jeśli chcesz dowiedzieć się więcej na ten temat, możesz zapoznać się ze szczegółami W poniższym linku.