Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I heard Google has a giant private (internal) repository of all of their code and their employees have access to it so that when they are developing things they don't have to reinvent the wheel. I'd like to know more about it!

Is there anyone here from Google that can describe it in a bit more detail, or do you know a bit more about it? I'm interested in knowing mainly about how it's organized and how they can make it easy for an employee to find something in such a giant codebase as it must be.

share|improve this question
add comment

2 Answers

up vote 22 down vote accepted

Here is a video explaining how it is organized: Development at the Speed and Scale of Google

Ashish Kumar presents how Google manages to keep the source code of all its projects, over 2000, in a single code trunk containing hundreds of millions of code lines, with more than 5,000 developers accessing the same repository.

share|improve this answer
1  
I know the other answer has more upvotes, but this video has all the data from the other answer and then some. If you (the reader) want a summary, read Chris's answer, otherwise if you have an hour to spare watch this video! –  Ricket Feb 1 '11 at 21:55
add comment

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.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.