Pojawia się Git 2.42 z ulepszeniami wydajności, nowymi poleceniami i nie tylko

git 2.42

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.


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.