7
votes

I want to check the total size of a git repository. Is funny that du is giving me two different kind of sizes when the -h flag is sent. It is actually giving double size.

Why is this? What is the correct size?

MyMac:~/repositories/my-repo.git davidrod$ du -h
  0B    ./branches
 64K    ./hooks
4.0K    ./info
  0B    ./objects/info
3.3M    ./objects/pack
3.3M    ./objects
4.0K    ./refs/heads
8.0K    ./refs/tags
 12K    ./refs
3.3M    .
MyMac:~/repositories/my-repo.git davidrod$ du 
0   ./branches
128 ./hooks
8   ./info
0   ./objects/info
6672    ./objects/pack
6672    ./objects
8   ./refs/heads
16  ./refs/tags
24  ./refs
6856    .
2
Check your du man page: the default block size is 512 bytes.glenn jackman

2 Answers

9
votes

The size on OSX (which I assume you have from the computer name) is calculated on 512-byte blocks because the BSD version of du is used (other versions, like the Cygwin's one I am using now on Windows, behave differently).

So for every 1K you get two blocks, apparently doubling the value of every size.

4
votes

They're both correct. In the second case, the unit is blocks (512B each). 1 kilobyte = 2 blocks.