Por que o git clone do código-fonte do kernel Linux é muito maior que o tar.xz extraído?

3

Quando eu faço o download do kernel diretamente como tipo tar.xz e o descompacta, o tamanho fica em torno de 1GB. Mas quando eu faço o download via git clone de aqui , o tamanho está próximo 7 GB. Mostra apenas ramificação mestre. Por que essa enorme diferença?

    
por Israr Sayed 19.01.2017 / 10:50

1 resposta

7

O tarball contém apenas o código-fonte para o lançamento específico do kernel no tarball, enquanto o repositório git (clonado usando git clone ) contém o histórico do kernel voltando por um longo tempo. Mesmo que você veja apenas a ramificação master quando clonar inicialmente, usando os parâmetros clone padrão, você realmente terá o repositório completo localmente: git log mostrará o histórico completo, git branch --remote mostrará todas as ramificações disponíveis.

Se você quer apenas o commit mais recente, você pode usar um clone superficial que será bem menor:

git clone --depth 1 ...

ou se você quiser uma data específica,

git clone --shallow-since=...

Você pode combinar isso com uma ramificação ou tag específica para fazer o download apenas da dica dessa filial ou da tag:

git clone --depth 1 --branch v4.10-rc4 git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git linux-4.10-rc4

Isso produz uma árvore usando 947MiB (e um download de 159MiB).

    
por 19.01.2017 / 11:02