Podczas wykonywania git clone
repozytorium przez SSH lub HTTP otrzymujesz dane wyjściowe wyglądające mniej więcej tak:
Cloning into 'some_directory'...
remote: Counting objects: 7, done.
remote: Compressing objects: 100% (5/5), done.
remote: Total 7 (delta 0), reused 5 (delta 0), pack-reused 0
Unpacking objects: 100% (7/7), done.
Checking connectivity... done.
Interesuje mnie ten ostatni krok „Sprawdzanie łączności”. Dzieje się tak po pobraniu repozytorium i pobraniu wszystkich jego metadanych, tj. Długo po zakończeniu łączności z Internetem.
Co dokładnie wykonuje ten etap procesu?
Checking out files: 100% (2897/2897), done.
późniejChecking connectivity
? Wygląda na to, żeReceiving objects
tak naprawdę nie oznacza to odbierania treści. Na przykład, kiedy sklonowanygit
, mam ten wiersz wyjścia:Receiving objects: 100% (199562/199562), 84.06 MiB | 3.90 MiB/s, done.
. Jednak gdy pobrałem zip z GitHub, zdekompresowany katalog miał tylko 28 MiB. Nie jestem pewien, co to oznacza, ale może to być podsumowanie wszystkich przeszłych zobowiązań lub coś w tym rodzaju.Odpowiedzi:
Myślę, że słowo
connectivity
to nie ma tu nic wspólnego z łącznością sieciową. Komunikat jest wyświetlany po tym, jak wszystkie dane zostały już odebrane z serwera git.Kilka wskazówek można znaleźć w źródłach git. W pliku connected.c znajduje się następujący komentarz :
Jest to związane z funkcją
check_everything_connected_real
, która jest wywoływana poChecking connectivity...
to komunikat wyświetlany .Oznacza to w zasadzie, że git sprawdza, czy wszystkie obiekty zostały poprawnie odebrane (są podłączone do istniejących referencji).
źródło