<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          SVN為什么比git更好

          共 3136字,需瀏覽 7分鐘

           ·

          2021-07-14 13:27

          來源 | https://sexywp.com/why-svn-is-better-than-git.htm


          SVN為什么比git更好

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

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

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

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

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

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

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

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

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

          我完全站在SVN的擁泵角度,來闡述上面那些,我會(huì)得出這樣的結(jié)論,SVN在某些場合,真的比git更合適,而我覺得,這個(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ā)人員參與的開源系統(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)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  高潮喷水日本片 | 最新亚洲av | 91人妻最真实刺激绿帽 | 97色婷婷五月 | 伊人久在线 |