For the most Google uses a Perforce setup. However, there are internal tools for getting other tools like git to work on top of it. (How they accomplish this I don't know.) Large, open-source projects like Android and Chromium have separate repositories however.
Built on top of Perforce are a lot of stellar internal apps. For example, there are tools to make building, testing, and code reviews nothing short of magical.
Partly because of this 'magic' and testing culture, Google doesn't really use branching. Everybody checks into 'main'. For any project you can see the source, build it, and run the unit tests without any specialized knowledge. This is huge. When I was at Microsoft each product required the sacrifice of a different animal to build and running their tests would be out of the question.
Also, Google has a company-wide style guide for the major languages we use. if you have access to another team's source code, what would be the point if the formatting is all wonky!
As for searching, you might be familiar with Google Code Search. There is a special version of that, along with other top-secret code searching tools that make navigating code much easier.
In short, Google has a very engineering-centric culture which understands the value of tools and developer productivity.