Git clone “verificando a conectividade” - o que é isso?

9

Ao fazer um git clone de um repo sobre SSH ou HTTP, você obtém uma saída semelhante a esta:

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.

Estou interessado na última etapa "Verificação de conectividade". Acontece após o repositório e todos os seus metadados foram baixados, ou seja, bem depois que qualquer conexão à Internet tiver terminado.

O que exatamente essa etapa do processo está realizando?

    
por Mikey T.K. 18.03.2016 / 02:28

1 resposta

11

Acho que a palavra connectivity não tem nada a ver com conectividade de rede aqui. A mensagem é exibida depois que todos os dados já foram recebidos do servidor git.

Pode-se encontrar algumas pistas nas fontes do git. Existe o seguinte comentário no arquivo 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.
 */

Está relacionado com a função check_everything_connected_real que é chamada depois que Checking connectivity... message é exibido .

Então, basicamente, significa que o git está verificando se todos os objetos foram recebidos corretamente (estão conectados a referências existentes).

    
por 18.03.2016 / 21:09

Tags