Isso explica:
$ ls -l feuerkraft/.git/objects/pack/pack-26b69bdec4b3fd894bf7984d23e1938b522e6d53.pack media/.git/objects/pack/pack-26b69bdec4b3fd894bf7984d23e1938b522e6d53.pack htdocs/.git/objects/pack/pack-31a80589fbb132827d19b718c07aba1aa6bb9c02.pack -i
13150428 -r--r--r-- 2 ingo ingo 41191354 Mar 15 14:14 feuerkraft/.git/objects/pack/pack-26b69bdec4b3fd894bf7984d23e1938b522e6d53.pack
13151244 -r--r--r-- 1 ingo ingo 41197513 Mar 28 08:44 htdocs/.git/objects/pack/pack-31a80589fbb132827d19b718c07aba1aa6bb9c02.pack
13150428 -r--r--r-- 2 ingo ingo 41191354 Mar 15 14:14 media/.git/objects/pack/pack-26b69bdec4b3fd894bf7984d23e1938b522e6d53.pack
Os arquivos feuerkraft
e media
apontam para o mesmo inode, ou seja, links físicos. Este é um recurso do git clone
e documentado na página do manual:
$ man git clone
...
--no-hardlinks
Force the cloning process from a repository on a local filesystem to copy
the files under the .git/objects directory instead of using hardlinks.
This may be desirable if you are trying to make a back-up of your
repository.
Isso também explica por que git
define os arquivos do pacote como somente leitura, sempre se perguntando sobre isso. du
também tem uma opção para contar links físicos duplos:
$ man du
...
-l, --count-links
count sizes many times if hard linked
E isso dá os resultados esperados:
$ du -ls media/.git/ htdocs/.git/ feuerkraft/.git/
40696 media/.git/
40564 htdocs/.git/
40740 feuerkraft/.git/