2017-09-24 172 views
2

Google將其所有代碼庫存儲在一個名爲piper [1] [2] [3]的存儲庫中。是否有相當於Google的版本控制工具piper的開源代碼?

它有一種與開源替代品(集中式「雲」服務)完全不同的方法,旨在將數十億文件,數千個開發人員和數百萬次提交[1]擴展到存儲庫。 (它們的構建系統bazel和一些其他工具[4]相反)它似乎並不是Google開源的,也不打算這樣做(與他們的構建系統bazel和一些其他工具相反)。

你知道任何開源版本控制系統的方法類似piper嗎?

[1] https://cacm.acm.org/magazines/2016/7/204032-why-google-stores-billions-of-lines-of-code-in-a-single-repository/fulltext

[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

+0

你需要儲存裝置2個十億行代碼? 在免費雲基礎上的vcs bitbucket非常慷慨。 –

+0

不是我自己,但我遇到的公司遠遠不夠,目前使用數百個git/hg/cvs存儲庫,並且它們之間存在依賴關係。更新幾乎所有存儲庫共享的「通用」組件的版本是一場噩夢。所以這些版本很少見,而其他版本庫包含的代碼應該是常見的,並且是重複的,因爲它比將它集成到現有的常見庫中更加容易。還有其他一些問題,如可查找性,集成測試等等......基本上,Google給出了使用單個存儲庫的所有原因。 –

+0

在這種情況下,我可能會看到類似SVN –

回答

4

短的答案是否定的,它似乎不存在。

正如你可以在Quora article中看到的那樣,「很難判斷版本控制系統的結束位置,以及開發工具鏈的其他部分的開始位置」。

因此,首先您需要清楚您對哪些「功能」感興趣,因爲您可以對不屬於派珀的責任的功能感興趣。

還要記住,在選擇VCS之前,您的服務器磁盤空間和操作系統會限制文件數量/大小。

如果您需要集中式VCS和數十億個文件,則可以使用SVN或OpenCVS。

如果您需要一個包含數千個開發人員和數百萬次提交的分佈式應用程序,請查看Git,Bazaar,Bitbucket或Mercurial。

但是你真的有所有這些要求嗎?

AFAIK在市場上沒有派珀的開源代碼。

爲了更好地瞭解集中式和分佈式VCS,看看this Comparison between Centralized and Distributed Version Control Systems

而且看看what is Google's repository like?

+0

的東西「請記住,在選擇VCS之前,您的服務器磁盤空間和操作系統會限制文件數量/大小」 - >這就是要點:吹笛者並非如此。這是一個集中的VCS,但是一個分佈式服務。 '雲服務'方法允許'無限可擴展性'。存儲庫內容被分片。 '結帳'只是服務器端的元數據+安裝'網絡FS'。文件操作將RPC轉換爲維護「本地副本」狀態的服務。好處:您的「本地副本」實際上可供任何人使用。 –

+0

所以對於這些功能,我會說'分佈式服務'與'熔絲接口',儘管它更多的是實現細節。可能有其他方法來實現「無限可擴展性」的真正需求。再加上您期望從VCS獲得的基本功能:歷史記錄,工作副本,更新和合並......我也有一種印象,它不存在於開源中。一些專有解決方案聲稱這(perforce,塑料),但我不知道這是多麼真實。 –

+0

@ColinPitrat Perforce「聲稱」這一點,但我沒有使用它一次來驗證。我不知道Google Piper提供的資源等開源項目。現在,對你的問題最好的簡單回答是「不,沒有類似Piper的選擇」。無論如何,絕大多數公司都不需要「無限可擴展性」。請記住,Google Piper只是Google使用的解決方案中的一個應用程序,涉及許多其他工具。 – MiguelKVidal

相關問題