1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        SVN為什么比git更好

        共 3136字,需瀏覽 7分鐘

         ·

        2021-07-14 13:27

        來(lái)源 | https://sexywp.com/why-svn-is-better-than-git.htm


        SVN為什么比git更好

        首先,我表明一個(gè)根本的立場(chǎng),我個(gè)人更喜歡用git,但是,這僅僅是一個(gè)個(gè)人偏好。

        當(dāng)我們需要將一種技術(shù)方案帶給整個(gè)團(tuán)隊(duì)的時(shí)候,并不是由我們的個(gè)人偏好作為主要決定因素,而應(yīng)該充分去權(quán)衡利弊,選擇對(duì)團(tuán)隊(duì),對(duì)公司更有效率的方案。

        拋開(kāi)個(gè)人立場(chǎng),理性評(píng)估利弊,可能才是我認(rèn)可的一個(gè)資深程序員,或者一個(gè)架構(gòu)師的本分。

        我所在的團(tuán)隊(duì),現(xiàn)在選用的技術(shù)方案是git作為全公司的版本控制系統(tǒng),我們一共有差不多20個(gè)程序員,使用五種以上的程序設(shè)計(jì)語(yǔ)言,研發(fā)維護(hù)四個(gè)左右的項(xiàng)目,屬于小型創(chuàng)業(yè)公司中,研發(fā)規(guī)模中等偏上的企業(yè)。
        使用git作為版本控制系統(tǒng),在我加入公司之前,已經(jīng)是既成事實(shí)了,在我聽(tīng)說(shuō)這一點(diǎn)的時(shí)候,我非常高興,因?yàn)槲艺f(shuō)過(guò),我喜歡git。
        上周五,我們公司新來(lái)的工程師,在周會(huì)上分享git,有個(gè)同事挑戰(zhàn)道,為什么git比svn更好?這個(gè)問(wèn)題,如果是問(wèn)我個(gè)人的話,我可能會(huì)有很多的理由,但是,就像我一貫的思維模式,說(shuō)服別人的時(shí)候,必須給出足夠令人信服的原因,不能使用主觀因素去說(shuō)服別人,那樣只能引起爭(zhēng)論。
        對(duì)于,“為什么git比svn更好”這個(gè)問(wèn)題,我真的很想給出一個(gè)肯定的答案,但是,我在探尋答案的過(guò)程中,遇到了困難。
        于是,我來(lái)嘗試一下站在反面的立場(chǎng)來(lái)給出一份答卷,然后,我們?cè)俜催^(guò)來(lái)辯論,于是就有了本文的題目。

        SVN到底有什么優(yōu)點(diǎn)

        1、廣泛的群眾基礎(chǔ)。從我開(kāi)始使用版本控制系統(tǒng),我用的就已經(jīng)是SVN了,所以,想要追溯SVN到底從什么時(shí)候開(kāi)始,不得不求助于維基百科,我發(fā)現(xiàn),SVN首個(gè)正式版本,可以追溯到2000年,距今已經(jīng)十五年歷史了。
        在github成為大熱門(mén)之前,SVN基本處于一統(tǒng)天下的地位。
        幾乎所有的公司都在使用SVN作為內(nèi)部的版本控制系統(tǒng),Google Code更是掀起了開(kāi)源軟件的浪潮,一時(shí)間,幾乎全世界的程序員,都在使用SVN。
        我敢說(shuō),我們公司目前招聘的程序員,還沒(méi)有沒(méi)用過(guò)SVN的。這意味著,如果公司使用SVN的話,他們快速上手的概率,是非常高的。
        現(xiàn)在中國(guó)中小企業(yè)和創(chuàng)業(yè)企業(yè),程序員招聘的困難程度,我不想多闡述——誰(shuí)負(fù)責(zé),誰(shuí)頭疼——如果使用SVN的話,學(xué)習(xí)版本控制系統(tǒng)用法這種事情,不會(huì)成為你腦海里的一個(gè)問(wèn)題。
        2、優(yōu)異的跨平臺(tái)支持 。年齡大這種事情,并非總是缺點(diǎn),在跨平臺(tái)支持這個(gè)角度,就會(huì)成為優(yōu)勢(shì)。
        十五年來(lái),SVN幾乎積累了所有平臺(tái)上優(yōu)秀的客戶端軟件。Windows平臺(tái)的TortoiseSVN的成功,簡(jiǎn)直無(wú)需贅述,甚至有程序員認(rèn)為,TortoiseSVN就是SVN本身,一提到小烏龜,每個(gè)碼農(nóng)都會(huì)心一笑。
        而且,SVN本身的命令行客戶端,就已經(jīng)非常簡(jiǎn)潔好用了??缙脚_(tái)簡(jiǎn)直毫無(wú)任何可以挑剔的地方。
        3、簡(jiǎn)單易用。我個(gè)人認(rèn)為,SVN的易用性是無(wú)與倫比的。我剛?cè)肼汄v訊的第一年,身邊的程序員,是把SVN當(dāng)成云端文件夾用的。
        整個(gè)部門(mén),只有一個(gè)版本庫(kù),一個(gè)項(xiàng)目文件夾,所有的項(xiàng)目代碼仍在trunk里面,需要開(kāi)新項(xiàng)目,就在trunk里加一個(gè)文件夾。
        就算SVN被誤用到這種程度,它依然沒(méi)有給整個(gè)研發(fā)過(guò)程帶來(lái)任何大的麻煩,一切都井井有條。你要學(xué)會(huì)的,就是在小烏龜里點(diǎn)點(diǎn)鼠標(biāo)而已。
        后來(lái),部門(mén)逐步擴(kuò)大,文檔增多,為了保護(hù)文檔不丟失,部門(mén)運(yùn)維自己架設(shè)了一個(gè)SVN服務(wù)器,讓所有非程序員成員,都用SVN管理文檔,各種需求,設(shè)計(jì)稿,統(tǒng)統(tǒng)用SVN管理,這個(gè)切換過(guò)程幾乎沒(méi)花什么時(shí)間,就是簡(jiǎn)單地給一些非技術(shù)同事培訓(xùn)了一下,一切都平滑異常。
        讓五、六十號(hào)不懂技術(shù)的人,一下子用上SVN,足見(jiàn)其簡(jiǎn)單了吧。
        4、功能完善穩(wěn)定。從過(guò)去七年(此時(shí)是2015年)的開(kāi)發(fā)經(jīng)歷來(lái)看,我還沒(méi)遇到過(guò)什么SVN不能處理的研發(fā)管理模型。
        特指在中國(guó),公司制的研發(fā)團(tuán)隊(duì)管理場(chǎng)景下。SVN本身建議的研發(fā)流程模型,已經(jīng)足足夠夠了,trunk用于代碼主干,branches用于特性開(kāi)發(fā),tag用于發(fā)布快照,一切都流暢自然。
        我所在的團(tuán)隊(duì),經(jīng)過(guò)幾年的摸索和磨合,已經(jīng)形成了非常流暢順滑的研發(fā)流程。有新任務(wù)來(lái)了,開(kāi)分支,天天早上第一件事,同步主干變更(sync trunk),任務(wù)完成后,分支測(cè)試,測(cè)試完畢后回歸主干(reintegration),完畢后集成測(cè)試,測(cè)試通過(guò)后,打tag,然后用內(nèi)部自研上線系統(tǒng),tag全量代碼發(fā)布,最后分支負(fù)責(zé)人刪除掉用過(guò)的分支。
        尤其配合SVN 1.5以后出現(xiàn)的merge tracking功能特性,連沖突都是很偶然的事件了。
        SVN經(jīng)過(guò)15年左右的研發(fā),功能異常完善,而且非常穩(wěn)定,你熟知的命令和參數(shù),就幾乎一直保持著你熟知的那個(gè)狀態(tài),沒(méi)有附加學(xué)習(xí)成本,最難能可貴的是,SVN一直在持續(xù)更新,改善效率。

        git 相對(duì)SVN來(lái)說(shuō),有什么缺點(diǎn)?

        1、高昂的學(xué)習(xí)成本。不要睜著眼睛跟我說(shuō),git學(xué)習(xí)很簡(jiǎn)單啊,“學(xué)習(xí)很簡(jiǎn)單”這一個(gè)主觀感受,也即,你覺(jué)得簡(jiǎn)單,只能代表你一個(gè)人的感受,如果整個(gè)團(tuán)隊(duì)只有你一個(gè)人,或者你們團(tuán)隊(duì)奉行一種精英文化,不是精英不招聘的話,你們所有人,可能都覺(jué)得學(xué)習(xí)git很簡(jiǎn)單。
        但是如果是一家剛剛創(chuàng)業(yè)的小公司,或者經(jīng)營(yíng)數(shù)年的中小企業(yè),考慮其本身能從市場(chǎng)上獲取到的人才的程度,你不得不考慮他們的接受能力。
        固然,公司可以花力氣去培訓(xùn),可是培訓(xùn)的時(shí)間和代價(jià),本身就構(gòu)成了“學(xué)習(xí)成本”。
        2、拙劣的跨平臺(tái)支持。對(duì)于Windows,尤其不友好。但是請(qǐng)注意,Windows仍然是世界上使用最廣泛的操作系統(tǒng),我相信,大多數(shù)基層程序員也仍然在Windows環(huán)境下工作,那么git那近乎故意的Windows不友好,不知道到底是為了什么。
        無(wú)論GitHub做了什么,各種IDE做了什么,在Windows下使用git,其體驗(yàn)仍然是非常間接,而且不方便的。
        3、糟糕的抽象,復(fù)雜的結(jié)構(gòu)。要想用好git,用戶必須理解幾個(gè)很特殊的東西,一個(gè)是分布式的結(jié)構(gòu),另一個(gè)是git存儲(chǔ)版本的原理。
        這對(duì)于沒(méi)空去理解他的人們來(lái)說(shuō),很不友好,你幾乎不能憑著直覺(jué)去使用git,那樣幾乎都會(huì)把事情搞得一團(tuán)糟。
        另外,公司里非技術(shù)的同事,幾乎沒(méi)法使用git工作,比如我們公司的設(shè)計(jì)師,試圖使用git來(lái)管理設(shè)計(jì)稿,并進(jìn)行協(xié)作,實(shí)際體驗(yàn)是很糟糕的,他們連新建版本庫(kù)都不會(huì)。還不用提git其實(shí)對(duì)二進(jìn)制文件并不怎么友好。
        4、你可以把事情搞得很糟糕。git整個(gè)系統(tǒng),給用戶提供了極大的自由度,很多操作,我們知道是危險(xiǎn)的,但是系統(tǒng)并沒(méi)有阻止你操作。
        比如,你可以把任意分支push到任意分支,比如你可以隨意刪除本地提交歷史里的commit,比如你可以把多人共享的分支給rebase掉,你可以干出很多匪夷所思的壞事托亂全團(tuán)隊(duì)的速度,你可以惹麻煩,git本身沒(méi)有提供任何保護(hù)機(jī)制。

        一個(gè)不是結(jié)論的結(jié)論

        我完全站在SVN的擁泵角度,來(lái)闡述上面那些,我會(huì)得出這樣的結(jié)論,SVN在某些場(chǎng)合,真的比git更合適,而我覺(jué)得,這個(gè)結(jié)論,也相對(duì)是公允的。
        如果公司研發(fā)成本低,研發(fā)團(tuán)隊(duì)小,研發(fā)人員經(jīng)驗(yàn)參差,完全應(yīng)該考慮直接使用SVN,這可能為你們團(tuán)隊(duì)后續(xù)發(fā)展,節(jié)省大量的時(shí)間。
        當(dāng)然,還有一個(gè)要考慮的因素是研發(fā)內(nèi)容的特點(diǎn)和研發(fā)流程的特點(diǎn),是否高頻次協(xié)作?是否跨公司,跨地域協(xié)作?是否海量研發(fā)人員參與的開(kāi)源系統(tǒng)?而就我的經(jīng)驗(yàn)看,很少有公司的研發(fā)團(tuán)隊(duì)能跟這些東西搭邊,于是SVN理所當(dāng)然成為更理智的選擇。

        學(xué)習(xí)更多技能

        請(qǐng)點(diǎn)擊下方公眾號(hào)

        瀏覽 91
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            国产极品啪啪 | 婷婷五月天黄色 | 黄大片色日逼美女 | 波多野结衣三级电影 | 久久国产视频播放 | 国内午夜视频 | 蜜桃17c成人一区二区 | 十八岁新疆女rapper更新内容 | 美女露出粉嫩的尿口 | 三级毛片在线看 |