title: What does repo init and repo sync actually do?
body: <p>I posted this question at Android Enthusiasts but figured it was the wrong place to ask, so I deleted it from there and asking it "again" here.</p>
  
  <hr>
  
  <p>This is such a noob question, and pardon me if it is, but I just want to understand the underlying concepts clearly.  Reading repo help and Google's repo command reference page doesn't really enlighten much.  I understood some bits from Google's reference page, but I still need some more clarifications.</p>
  
  <p>Following the instructions on how to download android source, I executed these two commands on an Ubuntu shell: (I've taken cared of all the prerequisites for the environment.)</p>
  
  <pre><code>~/android4.2.2$ repo init -u https://android.googlesource.com/platform/manifest -b android-4.2.2_r1.2
  ~/android4.2.2$ repo sync -j4
  </code></pre>
  
  <p>After waiting half a day for repo to finish downloading, I ended up with 19G of downloaded material in android4.2.2 directory.  So what exactly just happened, and why did it reach 19G when Google said I should only be expecting around 8G of source files?</p>