Answering my own question, some numbers:
in master, there's no difference, as expected:
default: 7.7G
-c: 7.7G
in gingerbread, there's a decent difference:
default: 5.3G
-c: 2.3G
More information:
The Android servers are configured for a 2-step download, where a
static bundle snapshot is downloaded first over a plain https GET, and
the incremental difference is then downloaded over the regular git
https POST. Even with -c, the static bundle gets downloaded anyway,
and that contains all the branches; that's a repo bug, I think.
However, with --depth, repo correctly bypasses the static clone bundle
and goes straight over git.
Now, you can use --depth=1 in repo init. This makes things smaller,
with some significant drawbacks. You're using a non-resumable
protocol, so you need a reliable enough connection. You won't have any
change history. You won't be able to push from such a client
(including the ability to upload changes). Future syncs might
re-download everything again.
gingerbread, -c --dedpth=1: 1012M
Beyond -c and --depth, another approach is -g, to specify manifest
groups. E.g. if you don't need the darwin host tools, only build for
ARM, and don't worry about the platform but not the support files for
the flagship devices, you can use -g
all,-notdefault,-darwin,-x86,-mips,-device.
master, -c, -g, --depth=1: 2.8G
Note: all those numbers were measured against a local mirror of AOSP,
not against the live servers. While I've tried to document the
differences I know between a mirror and the live servers, I might have
missed some.
JBQ