Meta開源新工具啊,Git地位危險(xiǎn)了?
:
從事編程開發(fā)的同學(xué),絕大多數(shù)都會和版本控制系統(tǒng)打交道。
提到版本控制系統(tǒng),目前比較主流的就是Git和SVN,尤其是Git,使用最為廣泛。
關(guān)于Git和SVN之間關(guān)系不太清楚的同學(xué)可以看一下我的另外一篇作品,詳細(xì)的介紹了這兩款主流的版本控制系統(tǒng)。
從關(guān)于Git的絕大多數(shù)反饋來看,目前的版本控制系統(tǒng)在可用性方面還存在很多不足之處,開發(fā)人員在維護(hù)代碼庫時(shí)會逐漸變得越來越復(fù)雜,經(jīng)常不得不用一些復(fù)雜的命令來處理一件非常簡單的事情。
而近期Meta(Facebook)開源了一款新的版本控制工具Sapling,這款工具已經(jīng)構(gòu)建并在內(nèi)部開發(fā)10年,終于在近期開源,可以看得出來,最近Github Star數(shù)增長非??臁?/span>

前面提到目前Git的問題,對用戶很不友好,尤其是初學(xué)者,需要花費(fèi)大量的時(shí)間去了解Git的用法,往往為了處理一件簡單的事情就要花費(fèi)很多功夫,有時(shí)候如果對命令理解不夠透徹還容易造成嚴(yán)重后果。
兼容Git

Sapling出現(xiàn)的主要目標(biāo)就是為了解決這個(gè)問題,它能夠兼容Git,很多基礎(chǔ)命令和Git很相近,用過Git的同學(xué)會發(fā)現(xiàn),像克隆、提交、修改等都會很熟悉,因?yàn)镾amling的涉及之處的思想就是讓命令變得簡單易用,而且,它沒有暫存區(qū)概念,本地分支名稱可選,在周邊使用方面也做了很多優(yōu)化。
smartlog

smartlog是Sapling比較重要的命令之一,也是整個(gè)用戶體驗(yàn)的核心,它通過簡單執(zhí)行Sapling命令,就可以看到所有本地提交。
你當(dāng)前在哪里?
重要的遠(yuǎn)程分支在哪里?
哪些文件發(fā)生了變化?
那些提交是舊版本?哪些是新版本?
此外,smartlog 隱藏了所有你不關(guān)心的信息,例如,不重要的遠(yuǎn)程分支、不相關(guān)的提交。
視圖模式

另外,清晰的視圖對比現(xiàn)如今的版本控制系統(tǒng)是非常有價(jià)值的突破,通過視圖能夠直觀地查看運(yùn)行命令前后的效果,這樣對于新手,能夠 更加清楚自己操作的影響。
錯(cuò)誤修復(fù)
除此之外,修改錯(cuò)誤也變得簡單很多,這也是目前主流版本控制系統(tǒng)的弱點(diǎn)和痛點(diǎn)。有時(shí)候想要從錯(cuò)誤的修改中恢復(fù)會變得異常麻煩,需要理解很多復(fù)雜的命令,而Sapling的設(shè)計(jì)只需要一些簡單的撤掉就可以恢復(fù)。

這就相當(dāng)于Python之于C++,更加貼近我們自然語言的理解范疇,例如,通過sl undo、sl redo、sl uncommit 和 sl unamend 等命令可以輕松撤消許多操作。像 sl hide 和 sl unhide 這樣的命令允許你簡單而安全地隱藏提交并使它們恢復(fù)原來的樣子。
上面提到的這些重點(diǎn)都集中在用戶體驗(yàn)方面,除了這些之外,它在版本控制的底層也做了很多優(yōu)化,例如,堆棧操作、數(shù)據(jù)壓縮、代碼審查,都做了很多改進(jìn),感興趣的同學(xué)可以深入了解一下。
傳送門
Github地址:
使用文檔:
建議大家有空可以多瀏覽Github,有很多好用的開源免費(fèi)工具。但是,目前Github上項(xiàng)目多如牛毛,而且刷榜現(xiàn)在也非常嚴(yán)重,想要找到優(yōu)質(zhì)的項(xiàng)目變得越來越難。這里,給大家推薦Github上一個(gè)非常不錯(cuò)的項(xiàng)目《DevWeekly》,每周五晚上定期更新,這個(gè)項(xiàng)目每周都會精挑細(xì)選一些優(yōu)質(zhì)的開源項(xiàng)目,涵蓋C++、JAVA、JavaScript、Python、Go等不同編程語言。此外,還有一些開源工具、優(yōu)秀的技術(shù)文章: