• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            逛奔的蝸牛

            我不聰明,但我會很努力

               ::  :: 新隨筆 ::  ::  :: 管理 ::

            版本控制已經(jīng)出現(xiàn)有些年頭了。然而,我還是會被人問起一些,諸如版本控制是什么或者它是如何工作的,這樣基礎的問題。本文會概括地解釋版本控制解決的重要問題,本文使用的場景針對的是源代碼版本控制。


            目前有很多不同類型的版本控制系統(tǒng)(Version Control System, VCS)。一些VCS,比如SubversionCVS,以中央倉庫(repository)為中心進行架構。此外,還有分布式的VCS(Distributed VCS,DVCS), Git 和 Mercurial 是兩個新近出現(xiàn)的DVCS。然而,在上述兩種類型的環(huán)境中,通常會有一個“指定的”中央倉庫。對應地,比如一個Subversion服務器或者一個GitHub倉庫。下面會基于這個場景進行圖示說明。那么讓我們開始吧。

            在開發(fā)者拷貝到本機之前,服務器需要創(chuàng)建一個倉庫。創(chuàng)建初始倉庫會由于產(chǎn)品不同而有所差別。從現(xiàn)在起,你所要知道的就是,在服務器上有一個初始空間。我把這個版本稱作版本“A”。

            現(xiàn)在,每個開發(fā)者(開發(fā)者1和開發(fā)者2)都會拷貝版本“A”到他們本地電腦。再一次地,從服務器拷貝的過程會由于產(chǎn)品不同采用的技術會有所差別。

            每個開發(fā)者會在他們的本地拷貝上進行開發(fā)。他們的本地拷貝基于版本“A”。然而,由于他們應該不會做同樣的開發(fā),因而他們的版本會有所差別。因此,會有2個以上的版本會同時被創(chuàng)建,比如版本“B”和版本“C”。


            開發(fā)者1首先完成了她的工作并提交到服務器。服務器上的當前版本被更新成版本“B”。


            開發(fā)者2現(xiàn)在完成了他的工作并試圖提交到服務器。然而,這是服務器告知他基于開發(fā)的版本已經(jīng)發(fā)生改變。這也是為什么采取版本控制的首要原因之一。這個特性是對網(wǎng)絡共享代碼然后由開發(fā)者手動更新的一個跨越式發(fā)展,這確保了之前的編輯沒有被新的修改覆蓋。


            開發(fā)者2必須首先獲得所有版本“B”的變化,并合并到他的修改中,然后才可以提交到服務器。這個過程聽起來有些復雜。然而,大多數(shù)現(xiàn)代的版本控制系統(tǒng)十分高級,能夠自動在開發(fā)者的本地拷貝上完成合并。有幾種情況會產(chǎn)生沖突(例如:開發(fā)者1和開發(fā)者2同時修改了同一個文件的同一行)。這就是一些VCS產(chǎn)品比其他更高級的地方。不論如何完成合并,現(xiàn)在開發(fā)者2在他們的本地系統(tǒng)上同時混合了版本B和版本C。


            現(xiàn)在開發(fā)者2可以提交他的版本到服務器。

            這是一個版本控制的基礎。通過注意觀察圖中服務器的連線可以發(fā)現(xiàn)版本控制的原理。服務器記錄了所有先前的版本包括發(fā)生的變化,什么時候發(fā)生以及由誰進行修改。當需要進行代碼回溯或者引入其他bug時,這個記錄能夠解除困境。
            我希望本文能夠為版本控制系統(tǒng)提供一個基礎的介紹。如果你有任何疑問,請就你問題發(fā)表評論。
             
            英文原文:greenmoonsoftware 編譯:伯樂在線 – 唐尤華

            posted on 2012-04-27 15:07 逛奔的蝸牛 閱讀(1003) 評論(0)  編輯 收藏 引用 所屬分類: JavaC/C++Qt其他編程
            欧美综合天天夜夜久久| 亚洲国产精品无码久久一线| 2021少妇久久久久久久久久| 九九久久99综合一区二区| 国产成人久久精品麻豆一区| 国产精品久久久久免费a∨| 伊人久久大香线蕉av不变影院| 一本大道加勒比久久综合| 狠狠色丁香久久婷婷综合图片| 国内精品九九久久久精品| 伊人热热久久原色播放www| 成人久久精品一区二区三区 | 久久精品国产精品亚洲| 伊人久久久AV老熟妇色| 久久精品国产亚洲Aⅴ香蕉| 国产91色综合久久免费| 久久久久99这里有精品10| 国产精品狼人久久久久影院| 久久精品国产亚洲77777| 四虎国产精品成人免费久久| 久久久久亚洲爆乳少妇无| 久久99精品久久久久久| 少妇内射兰兰久久| 一本大道久久东京热无码AV| 久久久久国产精品麻豆AR影院| 久久狠狠色狠狠色综合| 99久久99久久久精品齐齐| 久久w5ww成w人免费| 久久婷婷激情综合色综合俺也去| 亚洲精品无码久久久久AV麻豆| 精品久久久久一区二区三区 | 国产精品亚洲综合专区片高清久久久| 国产美女亚洲精品久久久综合| 狠狠色丁香久久婷婷综合_中| 欧美久久一区二区三区| 亚洲国产成人精品久久久国产成人一区二区三区综 | 亚洲国产欧洲综合997久久| 狠狠色噜噜色狠狠狠综合久久| 久久亚洲AV成人无码| 精品国产青草久久久久福利| 久久久久青草线蕉综合超碰 |