Skip to content
Jason Mobarak edited this page Feb 25, 2014 · 2 revisions

We have a local CyanogenMod mirror. Which should make for a much faster initial fetch of CM, however, there is a significant cost in the complexity of pushing changes to github.

Using the mirror

To use it, do the following:

repo init -u <USERNAME>@boo.local:/cyanogenmod/cm/cozybit/android.git -b cm-10.2
repo sync -c

Then to push changes you'll need to push to the mirror, and to github. To start, add a "cozybit" remote:

$ git remote add cozybit ssh://[email protected]/cozybit/wpa_s_mesh_android

Then your remotes should look something like this:

$ git remote -v
...
private ssh://somewhere_on_boo/wpa_s_mesh_android (fetch)
private ssh://somewhere_on_boo/wpa_s_mesh_android (push)
cozybit git://github.com/cozybit/...    (fetch)
cozybit git://github.com/cozybit/...    (push)

Then, to push changes to both places you'll do:

git push private cm-10.2
git push cozybit cm-10.2

If, the mirror needs to be synchronized, do the following:

ssh boo.local
sudo su - cyanogenmod
cd cm
repo sync

Setting up the mirror

To initialize it I did the following (on boo):

Setup a new user

adduser cyanogenmod
ln -s /home/cyanogenmod /cyanogenmod

Loaded the 'repo' tool

sudo su - cyanogenmod
mkdir ~/bin
curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
echo 'export PATH=$PATH:$HOME/bin' >> ~/.bashrc

Initialized the mirror

mkdir cm
cd cm
repo init -u https://github.com/cozybit/android.git --mirror -b cm-10.2

...note the "-b cm-10.2" uses the cm-10.2 version of the manifest. Also... it's important that the manifest have a pointer to it's own repo, otherwise you won't be able to init/sync a non-mirror copy later (see e400823169 here http://bit.ly/NuIvpm).

Sync the mirror

repo sync -c

NOTE: the -c option only fetches the current branch