it-swarm.cn

Google的存储库是什么样的?

我听说Google拥有一个巨大的私有(内部)所有代码存储库,其员工可以访问它,因此在开发事物时,他们不必重新发明轮子。我想了解更多!

Google上有没有人可以更详细地描述它,或者您是否对此有所了解?我感兴趣的是主要了解它的组织方式以及它们如何使员工轻松找到必需的巨大代码库中的内容。

62
Ricket

这是一段解释其组织方式的视频: 以Google的速度和规模发展

Ashish Kumar展示了Google如何在一个包含数亿条代码行的单一代码干中,将超过2000个项目的所有源代码保存在其中,超过5,000名开发人员访问同一存储库。

37
Giorgi

大多数情况下,Google使用 Perforce 设置。但是,有一些内部工具可以使其他工具(如git)在其上运行。 (我不知道他们是如何实现的。)但是,大型开源项目(如 AndroidChromium )具有独立的存储库。

在Perforce之上构建了许多恒星内部应用程序。例如,有一些工具可以使构建,测试和代码审查变得神奇。

部分由于这种“魔术”和测试文化,Google并未真正使用分支。每个人都进入“主”。对于任何项目,您都可以在没有任何专业知识的情况下查看源代码,进行构建并运行单元测试。这是巨大的。当我在Microsoft时,每种产品都需要牺牲另一只动物来构建和运行他们的测试,这是不可能的。

此外,对于我们使用的主要语言,Google在全公司范围内都有 样式指南 。如果您可以访问另一个团队的源代码,那么格式化就很奇怪!

至于搜索,您可能熟悉 Google代码搜索 。有一个特殊的版本,以及其他 top-secret 代码搜索工具,这些工具使导航代码更加容易。

简而言之,Google具有非常以工程为中心的文化,了解工具的价值和开发人员的生产力。

63
Chris Smith

它是巨大的:

(截至2015年1月)

  • 文件总数:10亿
  • 源文件数量:900万
  • 代码行数:20亿
  • 历史深度:3500万次提交
  • 内容大小:86 TB
  • 每个工作日的提交次数:45,000

他们使用称为Piper的内部工具,其本身依赖于Google基础架构。

来源: 为什么Google会在单个存储库中存储数十亿行代码

3
Benjamin Crouzier