天天看點

微軟使用開源軟體Git來建立Windows

微軟不僅僅是已經成為了開放源代碼的熱心使用者,而且正在使用git版本控制系統來建構windows。專有軟體開發的一個典型的例子就是依靠開放源代碼建立其windows作業系統。

微軟使用開源軟體git來建立windows

幾乎所有的微軟windows工程師現在都在使用開源程式git來建構windows

其實,早在2013年,微軟就已經宣布了其向visual studio開發工具套件和team foundation應用程式生命周期管理技術添加git支援的路徑圖。同年晚些時候,微軟技術研究員和tfs上司者brian harry宣布,微軟将支援git作為其分布式源代碼控制平台。

但如同harry在當時的部落格文章中所說的,“我們越多地注視它,它看起來就越像是正确的事情。”

随着歲月的流逝,微軟甚至對git作出了重要的開放源代碼貢獻。在2017年,微軟根據mit license開放了git virtual file system(git虛拟檔案系統)。 gvfs使微軟的産品團隊能夠擴充git用戶端來處理其龐大的源代碼回收。

從那時起,微軟開始移植所有的windows代碼到git和gvfs。這項工作現在已經基本完成了,而微軟正在享受其開放源代碼創造的這個星球上最大的git repo成果。

harry寫道:“在過去的3個月中,我們已經基本上完成了向微軟的windows團隊推出git / gvfs。”這可不是一件小事。“windows代碼庫大約是3.5m的檔案,當進入git repo時,結果就變成了約300gb的備份。”

并且寫道,“windows團隊約有4000名工程師,440個分支機構每天在工程系統中平均産生1760‘實驗室’,還有成千上萬個拖拽請求認證。所有三個次元(檔案數、repo大小和活動)獨立來看,都面臨着令人生畏的規模方面的挑戰,這些因素結合在一起讓創造一個偉大體驗變成令人難以置信的挑戰。”

harry承認這是一個可怕的經曆。“第一次也是最大的一次跳躍發生在3月22日,當時我們面向約2000名工程師的windows onecore團隊推出,這個2000名工程師星期五在source depot上工作,周末回到了家,周一早上回來上班的時候就要面對基于git的新體驗了。我的團隊中的員工整個周末都在提心吊膽,祈禱這些工程師不會到星期一發現自己無法完成任何工作,因而将一腔怒火發洩到我們頭上。坦率地說,令我吃驚的是,工作進展非常順利,工程師們從第一天開始就卓有成效。”

事情并不是一帆風順的。“我們發現第一周我們的ui提取請求和合并沖突解決方案根本沒有擴充到這麼大的變化,我們不得不争奪虛拟化清單并逐漸擷取資料,是以ui不會挂起。我們在幾天内解決了這個問題,整體而言,這一周的情緒好于我們預期。”

今天,幾乎所有的windows開發人員都在使用git。在接下來的幾個月中,最後的500位程式員将遷至git。harry表示,“系統運作的規模真的很棒,讓我們來看一些數字吧。”

在過去4個月中,該repo的曆史上有超過25萬次可達成的git承諾。 每天8421次(平均)推送 每個工作日(平均)有2500份拖拽請求,有6600名評論者 4352個活躍主題分支 每天有1760個官方建構

微軟繼續調整gvfs供遠端使用。harry解釋說:“windows team services帳戶位于美國西海岸的azure資料中心……80%的windows工程師克隆時間為127秒。由于windows的工程師有很大比例來自雷德蒙德,是以這個數字是由他們主宰的。”

“我們從北卡羅萊納州的辦公室(這個地點更遠而且網絡的帶寬要低得多)進行了測試。從北卡羅萊納州不使用代理伺服器進行了一次克隆差不多用了25分鐘。配置了一個代理的情況下,用了70秒(比在雷德蒙德快,因為雷德蒙德的團隊不使用代理,而且他們必須通過網際網路去到數百英裡外的azure資料中心)。70秒和幾乎25分鐘對比改善了95%。”

畢竟,gvfs是一個開放源代碼項目,歡迎你的試用。您所需要做的隻是下載下傳并安裝它,建立一個具有git repo的visual studio team services帳戶,這對你是件好事。其他git程式包含了atlassian sourcetree和git tower。

具有諷刺意味的是,目前還沒有支援gvfs的linux git用戶端,但是内部微軟支援linux和mac支援。微軟程式員經理saeed noursalehi在gvfs錯誤清單中寫道:“是的,我們絕對希望支援mac和linux,而且我們正在尋找具有這些平台上的檔案系統專業技能的人。”

linux和git的創造者linus torvalds曾經說過:“如果微軟曾經為linux提供應用程式,那就意味着我赢了”。我認為微軟使用git建立windows可以被視作是一種勝利。

本文轉自d1net(轉載)

繼續閱讀