Клон Git "перевірка підключення" - що це?


11

Роблячи git cloneрепост через SSH або HTTP, ви отримуєте вихід, який виглядає приблизно так:

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.

Мене цікавить останній крок "Перевірка підключення". Це відбувається після завантаження репо та всіх його метаданих, тобто після завершення будь-якого підключення до Інтернету.

Який саме цей крок процесу?


1
Ви помітили Checking out files: 100% (2897/2897), done.після цього Checking connectivity? Здається, Receiving objectsце насправді не означає отримання вмісту. Наприклад, коли я клонувати git, я отримав цю лінію продукції: Receiving objects: 100% (199562/199562), 84.06 MiB | 3.90 MiB/s, done.. Однак, коли я завантажив поштовий індекс з GitHub, декомпресований каталог становив лише 28 Мб. Я не впевнений, що це означає, але це може бути підсумок всіх минулих скоєнь чи щось подібне.
ecube

1
@ecube: Клонування сховища git являє собою створення локальної копії всієї його історії, включаючи кожну гілку, фіксацію та перегляд. ZIP-файл, наданий Github, не є сховищем git, а скоріше знімком останньої редакції сховища на первинній гілці. Останні, звичайно, завжди будуть меншими.
Радон Росборо

Відповіді:


15

Я думаю, що це слово connectivityне має нічого спільного з підключенням до мережі. Повідомлення відображається після того, як усі дані вже надійшли від сервера git.

Можна знайти деякі підказки у джерелах git. Існує наступний коментар в connected.c файлу:

/*
 * If we feed all the commits we want to verify to this command
 *
 *  $ git rev-list --objects --stdin --not --all
 *
 * and if it does not error out, that means everything reachable from
 * these commits locally exists and is connected to our existing refs.
 * Note that this does _not_ validate the individual objects.
 *
 * Returns 0 if everything is connected, non-zero otherwise.
 */

Це пов'язано з функцією, check_everything_connected_realяка викликається після відображенняChecking connectivity... повідомлення .

Таким чином, це в основному означає, що git перевіряє, чи всі об'єкти були отримані правильно (підключені до існуючих записів).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.