BitKeeper guy here (predecessor to Git and Hg). If you think about the capabilities of a distributed source management system you can quickly see it's an enabler for out-sourcing.<p>As a commercial DSCM provider, we got to watch a lot of out-sourcing attempts.<p>In 18 years of doing that, I've only seen one really successful one. Which was a Portland based dev team and a Singapore based test team. Every day, the dev team would check in their stuff (or make it available in a test tree) and the Singapore team would wake up, pull it, test it, document the failures, the Portland team would wake up fix and dev some more, lather, rinse, repeat.<p>As I recall, the Singapore team was out-sourced, different company, but they had a stable group of people dedicated to working with the Portland guys. It was more like two teams working on the same project.<p>I've seen countless efforts based on "I can get 3 guys in India for what I have to pay one junior guy here" fail. The time difference makes communication hard, you have to send someone to manage the India guys and communicate what you want, there is zero loyalty, if a better gig comes along all the time you put into onboarding those guys is lost, the quality of the code is pretty crappy, etc.<p>Pretty quickly it becomes not worth it.