我們擅長(zhǎng)商業(yè)策略與用戶體驗(yàn)的完美結(jié)合。
歡迎瀏覽我們的案例。
Git 屬于分布式版本控制系統(tǒng),默認(rèn)情況下,每個(gè) Git 倉(cāng)庫(kù)都具有整個(gè)歷史記錄的完整文件副本。即便是中等規(guī)模的開(kāi)發(fā)團(tuán)隊(duì)也會(huì)產(chǎn)生數(shù)千個(gè)提交,每個(gè)月向倉(cāng)庫(kù)添加幾百兆的數(shù)據(jù)。而隨著倉(cāng)庫(kù)的占用空間增加,Git 難以管理所有數(shù)據(jù),導(dǎo)致其運(yùn)行越來(lái)越不順暢。如此一來(lái),開(kāi)發(fā)者的時(shí)間就會(huì)被浪費(fèi)在執(zhí)行命令后等待反饋的操作上,如使用git status獲取被修改的文件,或者使用git fetch將代碼拉取至本地。由于等待的時(shí)間過(guò)長(zhǎng),開(kāi)發(fā)者大多會(huì)傾向于切換至完成另外的任務(wù),待命令執(zhí)行完成后再切換回來(lái)。而這種來(lái)回切換任務(wù)的工作方式常常會(huì)降低開(kāi)發(fā)者的生產(chǎn)力。
對(duì)于處理巨型 Git 倉(cāng)庫(kù)的問(wèn)題,微軟顯然是頗有經(jīng)驗(yàn)。畢竟 Windows 操作系統(tǒng)的代碼就是使用 Git 進(jìn)行管理,為了克服上述的問(wèn)題,微軟開(kāi)發(fā)了 VFS for Git(以前稱(chēng)為 GVFS),此項(xiàng)目使用虛擬文件系統(tǒng)繞過(guò)了許多倉(cāng)庫(kù)大小的限制,所以 Windows 開(kāi)發(fā)者在如此龐大的項(xiàng)目前也能正常使用 Git。
在開(kāi)發(fā) Vit for Git 的同時(shí),微軟通過(guò)使用自定義跟蹤系統(tǒng)和收集用戶反饋來(lái)確定性能瓶頸。在此期間,微軟也為 Git 客戶端貢獻(xiàn)了一些代碼,包括提交樹(shù)(Commit-Graph)功能以及對(duì)git push和稀疏檢出的改進(jìn)?;谶@些貢獻(xiàn)以及其他許多對(duì) Git 的近期改進(jìn),微軟啟動(dòng)了一個(gè)項(xiàng)目 —— 無(wú)需虛擬文件系統(tǒng)即可支持巨型 Git 倉(cāng)庫(kù)。這就是 Scalar 的誕生背景。
Scalar 是一個(gè)使用 C# 編寫(xiě)的 .NET Core 應(yīng)用程序,僅支持在 Windows 和 macOS 平臺(tái)中運(yùn)行。Scalar 通過(guò)設(shè)置所建議的配置值和運(yùn)行后臺(tái)維護(hù)來(lái)最大程度優(yōu)化 Git 命令的性能。無(wú)論開(kāi)發(fā)者使用什么服務(wù)來(lái)托管代碼倉(cāng)庫(kù),Scalar 都能有效地加速 Git 指令。微軟提到,只要使用 Scalar 為體積最大的代碼倉(cāng)庫(kù)進(jìn)行注冊(cè),就能馬上感受到 Git 執(zhí)行速度大的幅提升。
對(duì)于 Scalar 的未來(lái),微軟希望將其貢獻(xiàn)給 Git。微軟計(jì)劃把 Scalar 中加速 Git 的方法直接合并到 Git 項(xiàng)目中,最終實(shí)現(xiàn)讓開(kāi)發(fā)者不需要 Scalar,僅使用 Git 客戶端就能獲得這些性能改進(jìn)。不過(guò)要達(dá)成這個(gè)目標(biāo),仍然有很長(zhǎng)的路要走。微軟提到,目前稀疏檢出是 Scalar 用來(lái)解決倉(cāng)庫(kù)規(guī)模擴(kuò)大的方法,盡管 Git 最近更新了稀疏檢出功能,使得該功能更容易使用,但是要達(dá)到提供完整功能的階段,還有一段距離。
Scalar 目前使用稀疏檢出而非虛擬文件系統(tǒng),因此在執(zhí)行 Git 命令時(shí)會(huì)存在瓶頸,特別是git checkout 的速度不及 VFS for Git,微軟正在研究并行版本的git checkout,以提高執(zhí)行性能。微軟提到,為了真正地?cái)U(kuò)展 Git 服務(wù)以滿足成千上萬(wàn)的工程師的需求,并構(gòu)建與中央服務(wù)器交互的機(jī)器,Git 需要提供類(lèi)似于 GVFS 緩存服務(wù)器的概念。他們也表示計(jì)劃很快在郵件列表中提出這個(gè)想法。
另外,目前 Git 客戶端倉(cāng)庫(kù)之所以能順暢地執(zhí)行,是依賴(lài)定期執(zhí)行的前臺(tái)垃圾回收器,但微軟提到,對(duì)于巨型倉(cāng)庫(kù)來(lái)說(shuō),這是不可行的方法。因此微軟計(jì)劃在 Git 客戶端中加入某種形式的后臺(tái)維護(hù)功能,類(lèi)似git maintenance start命令,并像scalar register一樣容易使用。
?。?a href="http://www.nasamidwest.com">邯鄲網(wǎng)站建設(shè))
小米應(yīng)用商店發(fā)布消息稱(chēng) 持續(xù)開(kāi)展“APP 侵害用戶權(quán)益治理”系列行動(dòng) 11:37:04
騰訊云與CSIG成立政企業(yè)務(wù)線 加速數(shù)字技術(shù)在實(shí)體經(jīng)濟(jì)中的落地和應(yīng)用 11:34:49
樂(lè)視回應(yīng)還有400多人 期待新的朋友加入 11:29:25
亞馬遜表示 公司正在將其智能購(gòu)物車(chē)擴(kuò)展到馬薩諸塞州的一家全食店 10:18:04
三星在元宇宙平臺(tái)推出游戲 玩家可收集原材料制作三星產(chǎn)品 09:57:29
特斯拉加州San Mateo裁減229名員工 永久關(guān)閉該地區(qū)分公司 09:53:13