For Android ASOP, is 'repo sync' actually download the whole source code tree event if I use a -b argument to specify a branch
If I use 'repo -u init [url] -b gingerbread' and executed 'repo sync', is only the source code of 'ginerbread' is downloaded? As I know, 'git' will actually keep the whole repository. So I suppose if I can do something like 'git checkout ics' to get the ICS source code event I only executed 'repo -u [url] -b gingerbread'. 

I am not quite understand how 'repo' command works. 
For Android ASOP, is 'repo sync' actually download the whole source code tree event if I use a -b argument to specify a branch
===

If I use 'repo -u init [url] -b gingerbread' and executed 'repo sync', is only the source code of 'ginerbread' is downloaded? As I know, 'git' will actually keep the whole repository. So I suppose if I can do something like 'git checkout ics' to get the ICS source code event I only executed 'repo -u [url] -b gingerbread'. 

I am not quite understand how 'repo' command works. 