Wydanie rozproszonego systemu kontroli źródła Git 2.27
Do dyspozycji wydanie rozproszonego systemu kontroli źródła Git 2.27.0. Git to jeden z najpopularniejszych, niezawodnych i wydajnych systemów kontroli wersji, który zapewnia elastyczne nieliniowe narzędzia programistyczne oparte na rozgałęzianiu i łączeniu gałęzi. Aby zapewnić integralność historii i odporność na zmiany wsteczne, w każdym zatwierdzeniu stosowany jest niejawny hasz całej poprzedniej historii, możliwa jest również weryfikacja poszczególnych tagów i zatwierdzeń za pomocą podpisów cyfrowych od programistów.
W porównaniu do poprzedniej wersji, nowa wersja zawierała 537 zmian, przygotowanych przy udziale 71 programistów, z czego 19 brało udział w tworzeniu po raz pierwszy. Podstawowy innowacje:
Domyślne włączenie zaimplementowane w poprzedniej wersji zostało przywrócone druga wersja Protokół komunikacyjny Git, który jest używany, gdy klient zdalnie łączy się z serwerem Git. Protokół domyślnie uznaje się za jeszcze nie gotowy do użycia ze względu na identyfikację niepewnych kwestii, które wymagają osobnego rozważenia.
Dodano zestaw opcji konfigurowania połączenia SSL podczas uzyskiwania dostępu przez serwer proxy.
Rozszerzono informacje wyświetlane podczas korzystania z filtrów transformacji „wyczyść” i „smużenie”. Na przykład obiekt jest teraz pokazany drzewiaste, w którym pojawia się obiekt BLOB do przekonwertowania.
Aby uniknąć nieporozumień, polecenie „git opis” teraz zawsze używa rozszerzonego trybu wyjściowego („--long”), jeśli zostanie zidentyfikowany zastąpiony znacznik powiązany z zatwierdzeniem (poprzednio wyświetlany był znacznik z podpisem lub adnotacją opisujący zatwierdzenie, nawet jeśli był zmieniono nazwę lub przeniesiono w hierarchii „refs/tags/”, a polecenie „git show tag^0” nie zadziałało zgodnie z oczekiwaniami - nie znaleziono „refs/tags/tag” lub nawet zwrócono inny tag).
Podczas wykonywania polecenia „git pull” wyświetlane jest teraz ostrzeżenie, chyba że zmienna konfiguracyjna pull.rebase jest jawnie ustawiona i opcje „--[no-]rebase” lub „-ff-only” nie są używane. Aby pominąć ostrzeżenie dla tych, którzy nie zamierzają wykonywać operacji zmiany bazy, zmienną można ustawić na wartość false.
Przeanalizowano opcje „git pull” wspólne dla „git fetch”. Wcześniej niewymienione podobne opcje są udokumentowane, a brakujące opcje są przekazywane do git fetch.
Do polecenia „git rebase” dodano opcję „--no-gpg-sign” w celu zastąpienia ustawienia „commit.gpgSign”.
Dodano możliwość „git format-patch”, aby wyświetlić nagłówki „From:” i „Subject:” w niezmienionej postaci, bez konwersji znaków innych niż ASCII.
Do „git log” dodano opcję „-show-pulls”, umożliwiającą przeglądanie nie tylko zatwierdzeń, w których dokonano zmian, ale także zatwierdzeń dotyczących scalania tych zmian z osobnej gałęzi.
Ujednolicono interaktywną obsługę wprowadzania danych we wszystkich komponentach i dodano wywołanie fflush() po wyświetleniu monitu o wprowadzenie danych, ale przed operacją odczytu.
„git rebase” pozwala na ponowne zastosowanie wszystkich lokalnych zatwierdzeń bez uprzedniego wykonywania operacji „checkout”, nawet jeśli niektóre z nich zostały wcześniej przesłane.
Wartość zmiennej konfiguracyjnej „pack.useSparse” została zmieniona na „true”, aby włączyć optymalizacje, które wcześniej były domyślnie reklamowane jako eksperymentalne.
Dodano opcję „--autostash” do „git merge”.
Ulepszony interfejs „rzadkiej kasy”.
Dodano kilka nowych akcji do „git update-ref --stdin”,
umożliwiając bezpośrednią kontrolę transakcji aktualizacji łączy, na przykład w celu wdrożenia dwuetapowej atomowej aktualizacji łączy w wielu repozytoriach.
Dodano szablony userdiff dla dokumentów Markdown.
Usunięto ograniczenie wykluczające wszystkie ścieżki w szablonach z rzadkim pobieraniem, które powodują puste drzewo robocze.
Operacja „git recovery --staged --worktree” domyślnie używa teraz zawartości gałęzi „HEAD” zamiast zgłaszać błąd.
Kontynuowano prace nad przejściem na algorytm haszujący SHA-2 zamiast SHA-1.