title: Git is made to work niether with giant nor with lots of tiny files. If so, what are alternatives?
body: <p>The problems is this:
  I want to version-control a dictionary (real language dictionary).
  I have 2 main ways to manage this with .git:</p>
  
  <ol>
  <li>Commit one gigantic 5GB .txt file to .git.</li>
  <li>Break the dict into tiny .txt files, where each file contains only one dict-article and weigths somewhere between 0kb and 1kb.</li>
  </ol>
  
  <p>As far as my expirements shown neither strategy is applicable to .git</p>
  
  <ol>
  <li><p>In the first case, each change to the big file causes me to commit whole 5GB (and this is for any change!). Well, yeah, you can "compress" after each commit (thus making a delta file), but it takes time...</p></li>
  <li><p>In the second case, commits are cheap indeed, but, the size of .git folder triples (or somewhere close to tripling, sorry, I forgot the exact factor). </p></li>
  </ol>
  
  <p>As far as I know the multiplication of the .git folder is due to the fact that for each file .git must: </p>
  
  <ul>
  <li>Hash the file, but since original was tiny any hashing will make it's size grow</li>
  <li>create a link to the file (basicly another file with a hash)</li>
  <li>someother things (can you remind me what other reason for multiplication of the size of .git folder?</li>
  </ul>
  
  <p>So the question is this:
  Is there an alternative to .git but which is made to work with many small files?</p>