Meta開源自家的原始碼控制系統Sapling客戶端,Sapling是與Git相容原始碼控制系統,Meta強調,Sapling具備高可用性,可以支援全球最大的單體儲存庫。Meta目前僅先開源Sapling客戶端,但預計接下來還會開源和Sapling相容的虛擬檔案系統,以及Sapling伺服器。

原始碼控制已經成為現代開發人員最重要的工具,Git、GitHub和GitLab等工具已然成為整個軟體產業的基礎,而在Meta中,原始碼控制負責儲存開發人員開發中的程式碼、歷史紀錄,並提供程式碼服務,Meta提到,原始碼控制工具是他們快速開發產品的關鍵,因此投入許多資源進行改善。

在過去10年,Meta一直開發並發展自家的原始碼控制工具Sapling,現在Meta開源其客戶端,使得任何開發者,都可以使用Sapling內建的Git支援來操作儲存庫。Sapling是Meta著重可用性和可擴展性的原始碼控制系統,許多操作概念與Git和Mercurial相似。

當Sapling客戶端、伺服器和虛擬檔案系統共同運作時,Sapling可以服務數千萬檔案,並且負荷數千萬次提交以及分支,在Meta主要是將Sapling用於處理大型單體儲存庫(Monorepo),但Sapling也支援複製,並且與其他Git儲存庫互動,也可供個人開發使用,與GitHub和GitLab等Git託管服務一起運作。

大型單體儲存庫正是Meta創建Sapling的原因,Meta表示,在10年前,任何公共原始碼控制系統,都無法處理他們的大型單體儲存庫,而他們也不願意拆分儲存庫,因為會失去單體儲存庫所帶來的好處,像是簡化相依項目管理,以及快速進行大規模更新的能力。

原本Sapling是以Mercurial開源專案的擴充專案啟動,但後來迅速發展出具有新儲存格式、協定、演算法和行為的獨立系統。而在提高規模的同時,Meta還想要改善原始碼控制的實際體驗,Meta提到,當前版本控制系統的可用性仍然不足,開發人員需要維護儲存庫複雜性,常需要以複雜的命令解決簡單的問題。

Sapling則可以改善這些狀況,其操作起來和Git的基本命令類似,用戶可以複製儲存庫、提交、修改並推送程式碼至伺服器,但是每一個命令都以簡單易用為設計目標,每個命令只執行一件事,本地分支名稱可選,且沒有暫存區。

熱門新聞

Advertisement