您的位置:首頁>設計>正文

微軟和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對相容性採取了非常保守的方法, 要求存儲庫在各個版本之間保持相容。

GitHub的興趣和參與是由公司希望滿足企業客戶的需求所驅動的。 開源免費的GitHub託管並不需要微軟所做的擴展工作 。 顯然如果有人使用標準的Git, 那麼今天標準的Git必須足夠好才以滿足他們的開發過程。 但對於有償的企業方面, 情況會有所不同。 某些行業有大量的存儲庫, 這會給Git帶來一些問題。 例如遊戲在物理存儲庫通常並不大, 因為它們擁有數百萬個檔和數十年的歷史, 而是因為它們有大量的圖形和其他資源。

微軟對Git所做的擴展改進對於這種大型的存儲庫也是有用的。 因此, 微軟本身也有類似的企業需求; 該公司告訴我們, 西門子希望從Team Foundation Server版本控制轉移到使用Git。 但是只有在規模得到改善之後, 才能做到這一點。 現在TFS版本控制規模更好。

顧名思義, GVFS需要一個檔案系統驅動程式才能工作。 Windows部門與工程團隊合作, 為Windows添加功能以提高效率。 目的是最終將此功能轉換為受支持的可擴展API, 並在某些時候移動新的OneDrive預留位置等系統以使用相同的API。

圖片來自網路

微軟和GitHub也正在努力為其他平臺帶來類似的功能,首先是macOS,後來是Linux。在這兩個系統上執行此操作的明顯方法是使用FUSE,這是一種構建以使用者模式而不是核心模式運行的檔案系統的基礎結構,因為使用者模式開發比核心模式更簡單,更安全。但是,這些公司發現FUSE的速度還不夠快,Dropbox在開發類似功能Project Infinite的時候也學到了一些東西。目前這些公司認為,採用名為Kauth或KAuth的macOS可擴展性機制將是最好的選擇。

本文由Leery原創 未經授權轉載必究

訂閱本頭條號關注更多精彩內容

圖片來自網路

微軟和GitHub也正在努力為其他平臺帶來類似的功能,首先是macOS,後來是Linux。在這兩個系統上執行此操作的明顯方法是使用FUSE,這是一種構建以使用者模式而不是核心模式運行的檔案系統的基礎結構,因為使用者模式開發比核心模式更簡單,更安全。但是,這些公司發現FUSE的速度還不夠快,Dropbox在開發類似功能Project Infinite的時候也學到了一些東西。目前這些公司認為,採用名為Kauth或KAuth的macOS可擴展性機制將是最好的選擇。

本文由Leery原創 未經授權轉載必究

訂閱本頭條號關注更多精彩內容

Next Article
喜欢就按个赞吧!!!
点击关闭提示