Git 2.37 został już wydany i to są jego nowości

Uruchomienie nowa wersja Gita 2.37, który jest jednym z najpopularniejsze systemy kontroli wersji, niezawodne i wydajne oprogramowanie, które zapewnia elastyczne nieliniowe narzędzia programistyczne oparte na forkach i ich łączeniu.

Aby zapewnić integralność historii i odporność na zmiany, przy każdym zatwierdzeniu używany jest niejawny hash „wstecz” całej poprzedniej historii, możliwa jest również weryfikacja podpisów cyfrowych poszczególnych twórców tagów i zatwierdzeń.

Najważniejsze cechy Git 2.37

W porównaniu z poprzednią wersją, w nowej wersji przyjęto 395 zmian, przygotowany przy udziale 75 deweloperów, z czego 20 brało udział w tworzeniu po raz pierwszy.

W nowej wersji zaznaczono, że mechanizm indeksów cząstkowych (rzadki indeks), który obejmuje tylko część repozytorium, se został przygotowany do powszechnego użytku. Indeksy częściowe mogą poprawić wydajność i zaoszczędzić miejsce w repozytoriach, które wykonują częściowe operacje klonowania (sparse checkout) lub działają na niekompletnej kopii repozytorium.

Nowa wersja kończy pracę integracja indeksów częściowych w komendach „git show”, „git sparse-checkout” i „git stash”. Najbardziej zauważalny wzrost wydajności wynikający z używania indeksów częściowych jest w poleceniu „git stash”, które w niektórych sytuacjach jest nawet o 80% szybsze.

Kolejną wyróżniającą się zmianą jest to wdrożono nowy mechanizm „cruft packów” do pakowania niedostępnych obiektów, do których nie odwołuje się repozytorium (nie odwołują się do gałęzi lub znaczników). Odśmiecacz usuwa niedostępne obiekty, ale pozostają one w repozytorium przez pewien czas przed ich usunięciem, aby uniknąć sytuacji wyścigu. Do śledzenia okresu nieosiągalnych obiektów wymagane jest powiązanie, oznaczane są one czasem zmiany podobnych obiektów, co nie pozwala na przechowywanie ich w pliku pakunku, w którym wszystkie obiekty mają wspólny czas modyfikacji.

Zapisując każdy wcześniej używany obiekt w osobnym pliku, plik powodował problemy w obecności dużej liczby nowych nieosiągalnych obiektów, jeszcze nie. Proponowany mechanizm „cruft packów” pozwala na przechowywanie wszystkich niedostępnych obiektów w pliku bundle, a dane o czasie modyfikacji każdego obiektu są odzwierciedlone w osobnej tabeli zapisanej w pliku z rozszerzeniem „.mtimes”.

Dla Windows i macOS jest wbudowany mechanizm do śledzenia zmian w systemie plików, które eliminuje potrzebę wyświetlania całego katalogu roboczego podczas wykonywania operacji takich jak „stan git”. Wcześniej, aby śledzić zmiany przez hooki, można było podłączyć zewnętrzne narzędzia do śledzenia zmian w systemie plików, takie jak Watchman, ale wymagało to instalacji dodatkowych programów i konfiguracji. Ta funkcja jest teraz wbudowana i można ją włączyć za pomocą „git config core.fsmonitor true”.

Polecenie "git sparse-checkout" przestał obsługiwać alternatywę dla trybu "--cone" definicja szablonu dla częściowego klonowania, która pozwala przy definiowaniu części repozytorium podlegającej operacji klonowania wyszczególnić poszczególne pliki przy użyciu składni „.gitignore”, której nie pozwala na wykorzystanie do optymalizacji indeksów cząstkowych.

Z innych zmian które wyróżniają się:

  • Poprawiona elastyczność w konfigurowaniu wywołania fsync() do usuwania zmian na dysku.
  • Dodano obsługę strategii synchronizacji „batch” do parametru „core.fsyncMethod”, co przyspiesza pracę podczas zapisywania dużej liczby oddzielnych plików poprzez gromadzenie zmian w pamięci podręcznej zapisu wstecznego opróżnianej przez pojedyncze wywołanie fsync().
  • Polecenia przemierzania, takie jak „git log” i „git rev-list” mają teraz opcję „-since-as-filter=X” do filtrowania informacji o zatwierdzeniach starszych niż „X”.
  • W poleceniu "git remote" określenie flagi "-v" dostarcza informacji o częściowych klonach repozytorium.
  • Dodano ustawienie „transfer.credentialsInUrl”, które może przyjmować wartości „warn”, „die” i „allow”. Jeżeli parametr „zdalne. .url” określa poświadczenia w postaci zwykłego tekstu, próba wykonania operacji „get” lub „push” nie powiedzie się, jeśli ustawienie „transfer.credentialsInUrl” jest ustawione na „die” lub ostrzeżenie, jeśli jest ustawione na „warn” .
  • Domyślnie używana jest nowa implementacja trybu interaktywnego polecenia „git add -i”, przepisana z Perla na C.

W końcu jeśli chcesz dowiedzieć się więcej na ten tematmożesz sprawdzić szczegóły 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.