Wydanie systemu kontroli wersji Git 2.38

Wydano nowe wydanie rozproszonego systemu zarządzania kodem źródłowym Git 2.38. Git jest jednym z najpopularniejszych, niezawodnych i wydajnych systemów zarządzania wersjami, oferującym elastyczne narzędzia do nieliniowego rozwoju, oparte na rozgałęzianiu i scalaniu. Aby zapewnić integralność historii i odporność na zmiany „wstecz”, stosowane jest niejawne haszowanie całej wcześniejszej historii w każdym commicie, możliwe jest także uwierzytelnienie cyfrowymi podpisami deweloperów poszczególnych tagów i commitów.

W porównaniu z poprzednim wydaniem, nowa wersja zawiera 699 zmian, przygotowanych przy udziale 92 deweloperów, z których 24 uczestniczyło w projektowaniu po raz pierwszy. Główne nowości:

  • Do głównego składu dołączono narzędzie „scalar”, opracowane przez firmę Microsoft do zarządzania dużymi repozytoriami. Narzędzie pierwotnie zostało napisane w języku C#, ale w git włączona została przerobiona wersja w języku C. Nowe narzędzie różni się od polecenia git tym, że domyślnie włącza dodatkowe możliwości i ustawienia wpływające na wydajność przy pracy z bardzo dużymi repozytoriami. Na przykład przy użyciu scalar zastosowano:
    • Częściowe klonowanie do pracy z niepełną kopią repozytorium.
    • Wbudowany mechanizm śledzenia zmian w systemie plików (FSMonitor), pozwalający na obycie się bez przeszukiwania całego katalogu roboczego.
    • Indeksy obejmujące obiekty w różnych plikach pakietów (multi-pack).
    • Pliki commit-graph z indeksem grafu commitów, stosowanym do optymalizacji dostępu do informacji o commitach.
    • Tło cyklicznych prac do utrzymania optymalnej struktury repozytorium w tle, nie blokując sesji interaktywnej (co godzinę wykonywana jest praca polegająca na wstępnym ładowaniu świeżych obiektów z zdalnego repozytorium oraz aktualizacji pliku z grafem commitów, a każdej nocy uruchamiany jest proces pakowania repozytorium).
    • Tryb „sparseCheckoutCone”, ograniczający dopuszczalne wzory przy częściowym klonowaniu.
  • Do polecenia „git rebase” dodano opcję „—update-refs” do aktualizacji zależnych gałęzi, które krzyżują się z przenoszonymi gałęziami, aby ręcznie nie wykonywać operacji checkout do każdej zależnej gałęzi, aby przełączyć się na wymagany commit.
  • Zapewniono zgodność polecenia „git rm” z częściowymi indeksami.
  • Poprawiono zachowanie polecenia „git mv A B” podczas przenoszenia pliku z obszaru roboczego z częściowymi indeksami w trybie „cone” do zewnętrznego obszaru, dla którego ten tryb nie ma zastosowania.
  • Przeprowadzono optymalizację formatu plików bitmap dla dużych repozytoriów — dodano opcjonalną tabelę indeksów zawierającą listę wybranych commitów i ich przesunięć.
  • W poleceniu „git merge-tree” wprowadzono nowy tryb, w którym na podstawie dwóch wskazanych commitów obliczane jest drzewo z wynikiem scalania tak, jakby historie tych commitów były połączone.
  • Dodano opcję „safe.barerepository” do zarządzania możliwością umieszczania repozytoriów bare (repozytoria, które nie zawierają obszaru roboczego) wewnątrz innych repozytoriów git. Ustawienie na wartość „explicit” pozwoli na użycie repozytoriów bare tylko w katalogu głównym. Aby umożliwić umieszczanie repozytoriów bare w podkatalogach, należy użyć wartości „all”.
  • Do polecenia „git grep” dodano opcję „-m” („—max-count”), analogiczną do tej samej opcji w GNU grep, która pozwala ograniczyć liczbę wyświetlanych trafień.
  • W poleceniu „ls-files” wprowadzono opcję „—format” do dostosowania wyświetlanych pól (na przykład, można włączyć wyświetlanie nazwy obiektu, trybów itp.).
  • W „git cat-file” przy wyświetlaniu zawartości obiektów wprowadzono możliwość uwzględnienia powiązań autorów z emailami określonymi w pliku mailmap.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster