I just checked out master with repo. Now I want to switch to froyo. How can I do this without downloading a bunch of stuff again? I don’t want to download a bunch of stuff again, I just want to be able to move freely between branches as in a normal git clone.
Since you downloaded everything with repo, you can easily use repo to switch between branches without downloading everything again:
repo init -b froyo;
This will download only the files you need to switch branches, just like moving between branches with git.
keyboardsurfer provides the commands to checkout the the froyo branch of every project you currently have.
However projects that have been added or removed between revisions will not be added or removed to/from your working tree correctly.
Thus you should run this first and then run keyboardsurfer’s commands:
cd .repo/manifests git checkout -b froyo korg/froyo cd ../.. repo sync
cd into your repo directory, then execute
repo forall -c git checkout korg/froyo
for checking out the froyo branch for all subrepos and
repo forall external/qemu sdk -c git checkout korg/tools_r6for checking out the correct android tools for froyo.
In this way repo works in a similar way as
git submodule foreach. You can also go back to the head revisions via
git forall -c git checkout HEAD or a simple
if the branch you are in and the branch you will switch to has the same manifest.xml file, then you can use the following commands to do that.
repo forall -c git fetch aosp --tags repo forall -c git checkout -b john5.1.1_r14_api22 android-5.1.1_r14
also see details in http://johnliao52.github.io/2016/03/27/git-repo-skills.html