Col*_*rat 16 version-control dvcs
Google将其所有代码库存储在名为piper [1] [2] [3]的单个存储库中.
它的方法与开源替代方案(集中式"云"服务)非常不同,旨在扩展到具有数十亿个文件,数千个开发人员和数百万次提交的存储库[1].
它似乎并不是谷歌开源的,也不打算这样做(与他们的构建系统大火和其他一些工具相反[4]).
您是否了解任何开源版本控制系统的方法类似于piper?
[2] https://www.wired.com/2015/09/google-2-billion-lines-codeand-one-place/
[3] https://www.youtube.com/watch?v=W71BTkUbdqE
[4] https://opensource.google.com/projects/list/developer-tools?page=3
mic*_*ock 15
最近的两项开发为 Git 带来了类似 Piper 的功能:VFS for Git 和sparse-checkout.
第一个:微软最近为 Git开源了VFS,感觉它为 Git带来了 Piper 的一些 monorepo 功能。
VFS for Git 虚拟化 Git 存储库下的文件系统,以便 Git 工具可以看到看似正常的存储库,而实际上这些文件实际上并不存在于磁盘上。VFS for Git 仅在需要时下载文件。
VFS for Git 还管理 Git 的内部状态,因此它只考虑您访问过的文件,而不必检查存储库中的每个文件。这确保状态和结帐等操作尽可能快。
Microsoft 将其用于 >300GB 存储库中的 >4000 名开发人员,其 Windows Git 存储库中有 >200 万次提交。
第二个:sparse-checkout对于 Git v2.25.0 允许你只检出你的 monorepo 的一个子集。这应该会加快像git pull和这样的命令git status。有关更多信息,请参阅此博客文章。不幸的是,您必须手动指定要使用 Git 检出的子目录sparse-checkout,而 Piper 会为开发人员透明地处理此问题。
Mig*_*dal 12
简短的回答是否定的,似乎并不存在.
正如您在Quora文章中所读到的那样,"很难说出版本控制系统的结束位置,以及开发工具链的某些其他部分的开始位置".
因此,首先,您需要清楚自己感兴趣的"功能",因为您可能对Piper不负责任的功能感兴趣.
此外,请记住,您的服务器磁盘空间和操作系统将限制所选VCS之前的文件计数/大小.
如果您需要集中式VCS和数十亿个文件,可以使用SVN或OpenCVS.
如果您需要具有数千名开发人员和数百万次提交的分布式,请查看Git,Bazaar,Bitbucket或Mercurial.
但你真的有这些要求吗?
AFAIK在市场上没有Piper的开源等价物.
为了更好地理解集中式和分布式VCS,请查看集中式和分布式版本控制系统之间的比较