• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    CVS 簡介

    發布: 2007-6-21 12:06 | 作者:   | 來源:   | 查看: 59次 | 進入軟件測試論壇討論

    領測軟件測試網

       
      * 什麼是 cvs?

    cvs 是一個版本控制系統. 什麼是版本控制系統呢? 簡單的說,
    他可以記錄程式碼修改的過程, 有一個完整的 history.

    如說, 當你在修改程式碼的時候, 不小心寫出了一個 bug,

    但是你可能很久以後才發現多出了這個 bug, 這個時候, cvs 就能很
    有效的幫助你, 找出到底是在哪一次的修改中, 出現了這個 bug.

    或許你會說, 那我每次都把程式碼存起來, tar 起來不就好了,
    當然, 你是可以這麼做, 但是這太浪費空間了! cvs 在版本更改間,
    只儲存他們的 diff 檔, 這樣可以很有效的省下很多空間.

    再另一個場合里頭, 更能顯示出 cvs 的好處 -- 多人一起發展
    軟體的時候. cvs 支援 remote access, user 并可以對他要修改的
    檔案加上 edit 的 flag, 讓別人知道他要修改這個檔案了. 然而,
    一個較大的發展團隊, 一定還會需要一個 mailing list, 用來溝通.
    因為, cvs 只是一個管理 project 程式碼的工具, 他并不扮演溝通
    的角色.

    * 名詞

    repository: 意思是倉庫. 在 cvs 里頭, 就是你真正存放版本
    歷史的地方.

    pserver : 這是 cvs 用來接受 remote 的 cvs command 用的.
    cvs 有兩種模式, 一種是 local, 一種是 remote.

    cvsroot : 當你使用 cvs 的時候, 必須設定 CVSROOT 這個環
    境變數, 或是用 -d 這個選項來指定.

    * 簡單的例子
    - local cvs
    現在我正在寫 cvs 的文件, 我希望用 cvs 來維護這些文件.
    首先, 我定了一個 cvs root, 當然, 你得 mkdir

    setenv CVSROOT "/home/clkao/cvsroot/"
    cvs init

    cvs init 會幫你把 cvsroot 初始化, 至於初始化哪些東西, 後面再說.

    接著, 開一個要放文件的目錄

    mkdir /home/clkao/cvsroot/cvsdoc
    cd /home/clkao/work
    cvs checkout cvsdoc

    你會看到下面的訊息:
    cvs checkout: Updating cvsdoc

    cvs checkout 會把目前最新的版本送到你現在的目錄下, 當你下了
    上面的指令後, cvs 會幫你建立 cvsdoc 這個目錄.

    記住, 不要自己 mkdir /home/clkao/work/cvsdoc, 每個 cvs 工作目錄
    都還會有一些其他讓 cvs 參考的資訊.

    接著, 進入 cvsdoc 這個目錄, 編輯 cvs.doc 這個檔案, 寫了這些有的
    沒有的.

    cvs add cvs.txt
    cvs commit -m "Initial revision."

    cvs add 會把 cvs.txt 加入 cvs 在維護的 file list.
    cvs commit 會把現在目錄下所有的東西(cvs.txt) 送到 repository.
    -m 表示這次 commit 的 log message.

    現在修改一下 cvs.txt 吧, 就像我現在又繼續編輯, 繼續把新
    的內容加入 cvs.txt, 并且, 在檔案的最上面加上 $Id$ 的字樣.
    改完之後, 再 commit 一次. (注意, 沒有 '' 喔, 這里 slash 的
    目的是避免 cvs 也把這邊的 Id 代換掉.

    cvs commit -m "Adding new stuff."
    cvs log cvs.txt

    你會看到每次改的時候, 你加進去的 message. 想想, 這對寫程式,
    發展大的 project 的人來說, 是不是一個很棒的工具呢?

    cvs diff -r 1.1 -r 1.2 cvs.txt

    這樣會顯示 1.1 和 1.2 版的 diff, 原本有 1.1 版的人, 就只需要用
    這個 patch 就可以了!

    再編輯 cvs.txt, 有沒有發現最上面的 Id 變長了? 加了一代串文字,
    這顯示這個版本的一些相關資訊.

    - remote cvs
    可是, 我現在要做的是一個大的專案啊, 上面講的太小兒科了,
    而且我要讓好多人一起發展這個專案呢!

    這里我舉現在正要進行的 xcin-2.5 cvs 建立和使用的過程當作例子.

    su root
    檢查 /etc/services 有沒有這兩行, 沒有請加入:

    cvspserver 2401/tcp #CVS.network server
    cvspserver 2401/udp #CVS network server

    再 /etc/inetd.conf 加入:

    cvspserver stream tcp nowait root \
    /usr/bin/cvs cvs -b /usr/bin --allow-root /export pserver

    mkdir /export

    adduser anoncvs, 這是要給 anonymous cvs 用的. group 為 nogroup.
    新加一個 xcin 的 group.

    adduser 參與 xcin 的帳號, 當然, 把他們的 group 設為 xcin

    cvs -d /export init
    cd /tmp/xcin-alpha, 這是原來已經存在的版本, 現在要把它放進 cvs 里頭.
    cvs import xcin-2.5 RXP XCIN_2_5_ALPHA

    如此就會把 xcin-alpha 下的東西 import 進 /export/xcin-2.5 了.
    後面的 RXP 是 vendor tag, XCIN_2_5_ALPHA

    是 release tag, tag
    的用處很大, 不過我們後面再說.

    注意, 一個 user 要從遠端 access 的檔案, 他必須再這里擁有適當的權限.
    譬如說, /export/xcin-2.5 的 group 應該是 xcin, 且 group writable(
    這是 cvs default).

    現在試試看從遠端存取 cvs 維護的檔案.

    首先, 在你的機器上建立一個工作目錄, 譬如是 /home/clkao/work

    cd /home/clkao/work
    cvs -d "server:clkao@cirx.org:/export" login
    會出現 prompt 問你 password, 打進去.

    cirx.org 是 repository 所在的機器.
    當你下了 cvs login 的指令後, 這組 cvsroot 和 encrypted passwd
    會被存在 ~/.cvspass 里頭.

    cvs -d "server:clkao@cirx.org:/export" checkout xcin-2.5

    這樣就會把整套 cvs 所 maintain 的東西 checkout 出來在你的
    機器上.

    cd xcin-2.5

    東看看, 西看看, 發現了一個 bug. 修改好了之後, 就 commit 出去吧.

    cvs commit -m "Minor bug fix."

    cvs 會搜尋所有他 maintain 的 entry, 看看哪些需要 commit 的.

    這樣就大概有一個 cvs 的雛形了! 更精的還在後頭呢!

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>