Since you are using the same URL for all the branches, you can download them to a single folder, and still they are kept separate.
You can download multiple branches of project files into a single
.repo folder in a single working directory. This saves disk space and eliminates hurdles like path sensitive
repo --reference , inability to use multiple references.
To download all branches into same
.repo folder, do
repo init -u https://github.com/CyanogenMod/android.git -b cm-10.1
repo init -b cm-10.2
repo init -b cm-11.0
and the list goes..
This downloads all the branches to the single
.repo folder in a single working directory. When initializing a second branch, we donot provide the
-u url option because we are reusing a different branch from local repo.
repo sync the working directory contains the last initialized branch and this is completely harmless. We are only concerned about the working directory, not the contents of
.repo folder. The branches still stay separate.
You may occasionally use
repo forall -c git gc to pack all loose objects into pack files.