微軟和GitHub合作將Git虛擬文件系統遷移到macOS,Linux
去年一個更令人驚訝的故事是微軟宣布將使用Git版本控制系統進行Windows開發。微軟不得不修改Git來處理Windows開發的需求,但表示它想要將這些修改接受到上游並且集成到標準的Git客戶端中。
這個計劃似乎進展順利。昨天,公司宣布GitHub正在進行修改,兩家公司將攜手為MacOS和Linux帶來合適的客戶端。
由於Git的特性,微軟希望轉移到Git上,就像它容易的分支和在開發人員中的流行一樣。但是轉型面臨三個問題。 Git並不是為廣大開發人員設計的 – 超過3000名正在積極開發代碼庫。另外,Git並不是針對如此龐大的代碼庫設計的,無論是每個文件的文件數量和版本歷史記錄,還是純粹的大小,都超過了300GB。使用標準的Git時,使用源代碼庫的速度慢得令人無法接受。常見操作(如檢查哪些文件已被修改)需要多個分鐘。
該公司的解決方案是開發Git虛擬文件系統(GVFS)。使用GVFS,Git存儲庫的本地副本被虛擬化,使其包含元數據以及僅顯式檢索的源代碼文件。通過消除複製每個文件的需要(並且因此檢查每個文件以進行修改),存儲庫的磁盤佔用空間和使用速度大大提高。微軟修改了Git來處理這個虛擬文件系統。客戶端被改變了,所以它不會不必要地嘗試訪問本地不可用的文件,並添加了一個新的傳輸協議,用於從遠程存儲庫中選擇性地檢索單個文件。
在內部,這證明是成功的,今年5月Windows開發大幅遷移到了Git。但是更廣泛的Git社區呢?
微軟表示,到目前為止,大約一半的修改已經被上游接受,上游的Git開發者普遍贊同公司採取的改進軟件擴展的方法。雷德蒙德還表示,它已經願意改變其方法來滿足上游Git的需求。最大的複雜性在於,Git對兼容性採取了非常保守的方法,要求存儲庫在各個版本之間保持兼容。
GitHub的興趣和參與是由公司希望滿足企業客戶的需求所驅動的。開源,免費的GitHub託管並不需要微軟所做的擴展工作 – 顯然,如果有人使用標準的Git,那麼今天標準的Git必須足夠好,以滿足他們的開發過程。但在有償的企業方面,情況會有所不同。某些行業有大量的存儲庫,這會給Git帶來問題;例如,遊戲存儲庫通常在物理上並不大,因為它們擁有數百萬個文件和數十年的歷史,而是因為它們有大量的圖形和其他資源。微軟對Git所做的擴展改進對於這種大型的存儲庫也是有用的。因此,在GitHub中擁有相同的改進系列將使公司能夠更好地為這些社區服務。
微軟本身也有類似的企業需求;該公司告訴我們,西門子希望從Team Foundation Server版本控制轉移到使用Git。但是,只有在規模得到改善之後,才能做到這一點。現在,TFS版本控制規模更好。
顧名思義,GVFS需要一個文件系統驅動程序才能工作。 Windows部門與工程團隊合作,為Windows添加功能以提高效率。目的是最終將此功能轉換為受支持的可擴展API,並在某些時候移動新的OneDrive佔位符等系統以使用相同的API。
微軟和GitHub也正在努力為其他平台帶來類似的功能,首先是macOS,後來是Linux。在這兩個系統上執行此操作的明顯方法是使用FUSE,這是一種構建以用戶模式而不是內核模式運行的文件系統的基礎結構(因為用戶模式開發比內核模式更簡單,更安全)。但是,這些公司發現FUSE的速度還不夠快,Dropbox在開發類似功能Project Infinite的時候也學到了一些東西。目前,這些公司認為,採用名為Kauth(或KAuth)的macOS可擴展性機制將是最好的選擇。
[完]
對於以上消息,各位298電腦讀者又怎看呢?
歡迎到我們的<<討論區>>分享你的意見。
灣仔298電腦資訊網
免費網上電腦雜誌,電腦IT人集中地!
網址:www.wanchai298.com