乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      評《GIT和SVN之間的五個基本區(qū)別》

       NaturalWill 2015-01-09


      原文鏈接http://www.oschina.net/news/12542/git-and-svn,首先說明,我沒看英文原版,因為就我目前來說,自認(rèn)為沒這個需要了。好吧,我承認(rèn)其實是犯懶。。。

      下面我結(jié)合自身體會,逐條評論一下:

      1.GIT是分布式的,SVN不是:

      這一點絕對是最最關(guān)鍵的重點,與原作者不同,我要特別強調(diào)的是這一點對身處大陸的碼農(nóng)們的重要性。為什么?因為人家老外下全套android源碼要幾個小時,而我們要十幾二十個小時,甚至好幾天,還會不停斷線!

      分布式的最大好處,在于當(dāng)你要切換不同的提交,不同的分支時,不再需要聯(lián)網(wǎng)。試想一下,要是googleandroid源碼用svn(這個是純假設(shè),實際上是完全不可行的,后面會提到),本來在大陸下一次代碼就夠慢的了,要是每天再切個幾次分支和提交,那就別活了。所以在這一點上,我不說git完爆svn,應(yīng)該說是分布式完爆非分布式。

      2. GIT把內(nèi)容按元數(shù)據(jù)方式存儲,而SVN是按文件:

      說實話,我沒看出來原文列第二點出來是為了說明什么。這確實是個區(qū)別,但一般用戶是不需要了解的。

      看到評論中有人提到了提交沖突的問題。真發(fā)生了大規(guī)模沖突,不管git還是svn,都是挺讓人感到頭疼的,兩者對沖突的解決辦法也是差不多的。個人見解,沖突是靠良好的團隊管理和項目分工來盡力避免的,但真發(fā)生了,解決起來都差不多,也沒見哪個版本控制系統(tǒng)是以解決沖突效率高作為賣點的。當(dāng)然不存在沖突的版本管理系統(tǒng)也有,VSS嘛,往前推個10年,中興全公司都在用呢,呵呵~

      3. GIT分支和SVN的分支不同:

      分支確實是一個重點,只不過原文沒說到點子上,不過看文章是挺久之前的,可能那時候git還沒現(xiàn)在這么普及(當(dāng)然現(xiàn)在國內(nèi)也未必有多普及),也情有可原吧。

      這里我就說最關(guān)鍵的一點,你可以看完整的android代碼,如果沒有,可以用git clonelinux的完整代碼庫,然后用git branch -r命令看看,你會發(fā)現(xiàn)有幾十個甚至近百個分支,如果你只用svn的話,你一定完全無法想象。但這就是git分支的優(yōu)勢,因為git是基于差異來管理分支的,其分支的代價極小,再結(jié)合第一點,所以其切換分支也極為方便和快捷。這一點上我認(rèn)為git是優(yōu)于svn的,之所以我不說完爆,是因為這一點要結(jié)合項目需求,你的項目不是android,不是linux,沒有大量分支并行開發(fā)、合并的需求,其實用svn也是可以的。但用git,你可以為一個單獨的小功能拉分支,為一輪完整的測試?yán)种?,為你的每一個客戶單獨拉分支,等等等等,基本上是想拉就拉,這一點svn應(yīng)該是比不上的。

      至于原文提到的合沒合并的問題,svn我不常用,git下用git log命令,加上--graph參數(shù),再配合--oneline--color,我覺得是很方便直觀的。

      4. GIT沒有一個全局的版本號,而SVN有:

      原文承認(rèn)這一點不如svn,我也承認(rèn),但要補充說明一下,git每次提交產(chǎn)生的40位(160bit)哈希值,是完全可以等同于svn全局id的作用的,之所以說不如,只是因為不好記而已。

      5. GIT的內(nèi)容完整性要優(yōu)于SVN

      完整性這一點git要優(yōu)于svn這是事實,雖然我個人不論git還是svn,都沒碰到過這類問題。

      反正對于git,每個克隆都是個完整的庫,只要有一個克隆在,服務(wù)器被雷劈了都不怕,有點狡兔三窟的味道。當(dāng)然,我這里說的跟原文說的已經(jīng)不是一回事了。

       

      看到有評論說git鼓勵人們拉分支,這完全就是本末倒置了。事實是,git在分支這一點上優(yōu)勢巨大,所以當(dāng)項目有大量分支的需求時,自然git就脫穎而出了。這也是為什么android、linux用不了svn的原因。至于說svncommit是一種主動責(zé)任,稍微用點腦子想想,可能存在一個版本控制系統(tǒng),不需要程序員承擔(dān)所謂的主動責(zé)任么?無非在VSS里面,是checkout/checkin,在svn里面是commit,git又把svncommit拆分成了commitpush兩步而已。該評論實在是過于主觀,誤導(dǎo)傾向太重。

      最后說說git的不足,結(jié)合項目經(jīng)歷,個人認(rèn)為最大的是兩點,第一,圖形界面支持差,git本身是純命令行的,圖形化的界面也從來不是git的開發(fā)目標(biāo)之一,所以雖然有第三方開發(fā)了圖形界面支持,但這始終是git的短板;第二,git本身是不支持基于目錄的鑒權(quán)認(rèn)證的,我有碰到過幾個boss挺在意這個的,雖然也有插件能解決這個問題,但我沒用過。gitlinux之父專門為了linux內(nèi)核源碼而開發(fā)設(shè)計的,人家不在意這兩點,也完全可以理解。

      選擇版本控制工具,要結(jié)合各方面的因素,我反正也見過一群中興出來開公司的老古董,到今天都還在堅持vss的。我只能說git是我用下來感覺最方便,功能最強大的(本人開發(fā)環(huán)境是純linux,寫代碼看代碼用vim,工作內(nèi)容有涉及跨平臺,但vs之類的ide環(huán)境僅僅用來編譯一下而已)。如果你的項目很“l(fā)inux”的話,那我實在找不到不用git的理由。你只要想一想,天才如Linus者,會搞出個不如svn的東西來跟自己過不去么?

       


        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多