What is Repo and Why does Google use it?

Osama Gamal picture Osama Gamal · Mar 15, 2010 · Viewed 33k times · Source

When I wanted to get Android source code, I knew that I have to use "repo". So what is repo? Why do they use repo and not just use GIT?, and is there a GUI for repo that enables me to pause/resume syncing, because every time I get disconnected occasionally it seems that repo starts syncing from the beginning!

Answer

Matias Burni picture Matias Burni · Nov 15, 2012

As is mentioned in the android webpage, repo does not replace git. It is just a tool over git and helps you to manage multiple git repositories.

For example, suppose I have a big project which has a lot of features and I have several teams working on each feature and I created one repository for each feature. For example suppose my repositories are wifi, telephony, power management, etc. This action has sense when your features have different life cycles. For example if I won't touch the wifi feature in my next release and but I will modify all the rest. So under this scenario, my project or product is distributed in several different git repositories.

So, to get a centralized photo of my project (one specific moment of my project, for example a milestone), I need to get the revision (git hash or tag) of each repository. Remember that we have one repository for each feature. Manually I could do it but could be very painful. So, with repo you can have one MANIFEST which links to all the revisions of each git repo (one for each feature) and have an specific picture of my whole project.

Simply, I could say that is a way to manage centralized multiple git repositories which are decentralized.

With repo you have more features, not only to checkout at a specific point. For more info go to http://source.android.com/source/using-repo.html.