segunda-feira, 16 de junho de 2008

Repositório Git consome menos espaço do que Subversion?

Hoje vou verificar se um repositório Git consome menos espaço que um repositório Subversion.


Baixei o repositório do SQLObject (completo) pelo Subversion (SVN):

$ svn co http://svn.colorstudy.com/SQLObject SQLObject

.........

Olhe bem o tamanho desta fera:

$ du -hc --max-depth=1 SQLObject
71M    SQLObject/branches
88K    SQLObject/.svn
128K    SQLObject/contrib
346M    SQLObject/tags
6,6M    SQLObject/trunk
424M    SQLObject
424M    total

Não demorou tanto para baixar, então suponho que o computador baixou dados comprimidos, muito menos que estes 424MB.

Em seguida importei o mesmo repositório dentro do Git. Depois disto, observe abaixo os comandos que executei e como mudou o tamanho do repositório.

Logo após importar o repositório:

$ du -hc --max-depth=1 .
1,5M    ./sqlobject
16K    ./scripts
89M    ./.git
56K    ./debian
90M    .
90M    total

Após rodar o coletor de lixo:

$ git gc
Counting objects: 8753, done.
Compressing objects: 100% (8731/8731), done.
Writing objects: 100% (8753/8753), done.
Total 8753 (delta 6320), reused 0 (delta 0)
$ du -hc --max-depth=1 .
1,5M    ./sqlobject
16K    ./scripts
7,6M    ./.git
56K    ./debian
9,2M    .
9,2M    total

Após apagar objetos não utilizados:

$ git prune
$ du -hc --max-depth=1 .
1,5M    ./sqlobject
16K    ./scripts
5,8M    ./.git
56K    ./debian
7,3M    .
7,3M    total

O tamanho original do repositório é 424MB, mas faz mais sentido que o tamanho real dele seja realmente 90MB, como o Git acusou. O tamanho do repositório importado no Git caiu de 90MB para 7,3MB. Com esta economia de espaço, economiza-se banda, tempo e mídia de backup.

Nenhum comentário:

Postar um comentário

Por favor identifique-se: primeiro nome, instituição, ou o que lhe convier.