• <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-4-22 19:39 | 作者: 未知    | 來源: 網絡     | 查看: 71次 | 進入軟件測試論壇討論

    領測軟件測試網
    簡介
    CVS 是 Concurrent Version System(并行版本系統)的縮寫,用于版本管理.如果大家曾經參與過多人協作開發的項目,大家肯定有這樣的痛苦經歷:由于多個人同時修改同一個文件,自己辛辛苦苦修改的程序被別人徹底刪除了.另外,如果你的軟件/程序已經發布了三個版本,而這時候用戶需要你修改第二個版本的東西,也許你會因為只保留了最新版本而痛哭流涕。還有就是你對程序做了一些修改,但是修改很少,你只想給遠方的同事發一個兩個版本之間的差別文件,這樣可以免于郵箱不夠大,網速太慢之類的問題.為了解決類似這樣的問題,以及諸如生成補丁文件,歷史版本修改等,一幫黑客(褒義)在原先 Unix 體系里很成熟的 SCCS 和 RCS 的基礎上,開發了 CVS。(SCCS:Source Code Control System,RCS:Revision Control System)。
    CVS 的基本工作思路是這樣的:在一臺服務器上建立一個倉庫,倉庫里可以存放許多不同項目的源程序。由倉庫管理員統一管理這些源程序.這樣,就好象只有一個人在修改文件一樣.避免了沖突.每個用戶在使用倉庫之前,首先要把倉庫里的項目文件下載到本地。用戶做的任何修改首先都是在本地進行,然后用 cvs 命令進行提交,由 cvs 倉庫管理員統一 修改.這樣就可以做到跟蹤文件變化,沖突控制等等.
    由于 CVS 是典型的 C/S 結構的軟件,因此它也分成服務器端和客戶端兩部分。不過大多數CVS 軟件都把它們合二為一了。我們這里就分別從服務器和客戶端的角度討論cvs的使用。


    Cvs服務器安裝


    首先確保系統安裝有cvs:
    [root@mail xinetd.d]# rpm -qa|grep cvs
    cvs-1.11.1p1-3
    如果命令輸出類似于上面的輸出則說明系統已經安裝有cvs,否則就需要從安裝光盤中安裝cvs的rpm包。


    一 創建CVS屬主用戶:
    # useradd -d /cvsroot cvs
    # chmod 771 /cv sroot


    二、建立CVS倉庫(初始化cvs)


    # su cvs
    $ cvs -d /cvsroot init
    $exit
    #


    四、啟動cvs服務器


    在/etc/xinetd.d/目錄下創建文件cvspserver,內容如下:
    # default: on
    # description: The cvs server sessions;


    service cvspserver
    {
    socket_type = stream
    wait = no
    user = root
    server = /usr/bin/cvs
    server_args = -f --allow-root=/cvsroot pserver
    log_on_failure += USERID
    only_from = 192.168.0.0/24
    }
    其中only_from是用來限制訪問的,可以根據實際情況不要或者修改。
    修改該文件權限:
    # chmod 644 cvspserver
    然后重新啟動xinetd:
    # /etc/rc.d/init.d/xined restart
    然后察看cvs服務器是否已經運行:
    [root@mail xinetd.d]# netstat -lnp|grep 2401
    tcp 0 0 0.0.0.0:2401 0.0.0.0:* LISTEN 7866/xinetd
    則說明cvs服務器已經運行。


    五、創建用來訪問cvs的用戶


    前面創建的cvs用戶是cvs倉庫管理用戶,而為了讓用戶訪問則還需要一個訪問用戶:
    # useradd cvspub
    # usemod -G cvs cvspub
    這里添加了一個用戶cvspub,并且將該用戶添加到cvs組中。


    六、管理cvs服務器


    管理 cvs 服務器.服務器可以用了,現在大家最關心的就是如何管理服務器,比如,我想讓一些人有讀和/或寫 CVS 倉庫的權限,但是不想給它系統權限怎么辦呢?不難,cvs初始化結束以后,在管理員用戶(這里是cvs用戶)的主目錄里有一個 CVSROOT 目錄,這個目錄里有三個配置文件:passwd, readers, writers。我們可以通過設置這三個文件來配置 CVS 服務器,下面分別介紹這幾個文件的作用:
    passwd:cvs 用戶的用戶列表文件,它的格式很象 shadow 文件:
    {cvs 用戶名}:[加密的口令]:[等效系統用戶名]
    如果你希望一個用戶只是 cvs 用戶,而不是系統用戶,那么你就要設置這個文件,剛剛安裝完之后這個文件可能不存在,你需要以cvs管理員身份(su cvs)用戶手工創建,當然要按照上面格式;
    第二個字段是該用戶的加密口令,就是用 crypt (3) 加密的,你可以自己寫一個程序來做加密,也可以用兩個偷懶的方法:先創建一個系統用戶,名字和 cvs 用戶一樣,口令就是準備給它的 cvs 用戶口令,創建完之后從 /etc/shadow 把該用戶第二個字段拷貝過來,然后再把這個用戶刪除.這個方法對付數量少的用戶比較方便,人一多就不合適了,而且還有沖突條件(race condition)的安全隱患,還要 root 權限,實在不怎么樣,不過權益之計而已;另外一個方法就是利用apche的htpasswd命令創建passwd用戶,添加用戶只需要htpasswd passwd username即可添加用戶到passwd文件中,不過需要在文件中對應行的最后添加一個":"冒號和對應的等效系統用戶名;最好的就是自己編寫一個程序了來生成這個passwd文件了。
    第三個字段就是等效系統用戶名,實際上就是賦與一個 cvs 用戶一個等效的系統用戶的權限,看下面的例子你就明白它的功能了。
    readers:有 cvs 讀權限的用戶列表文件,就是一個一維列表。在這個文件中的用戶對 cvs
    只有讀權限。
    writers:有 cvs 寫權限的用戶的列表文件,和 readers 一樣,是一個一維列表。在這個文件中的用戶對 cvs 有寫權限。
    上面三個文件在缺省安裝的時候可能都不存在,需要我們自己創建,好吧,現在還是讓我們用一個例子來教學吧.假設我們有下面幾個用戶需要使用 cvs:
    cvsuser1, cvsuser2, henry, betty, anonymous
    其中 laser 和 gumpwu 是系統用戶,而henry, betty, anonymous 我們都不想給系統用戶權限,并且 betty 和 anonymous 都是只讀用戶,而且 anonymous 更是連口令都沒有。
    然后編輯 cvs 管理員家目錄里 CVSROOT/passwd 文件,加入下面幾行:


    laser:$xxefajfka;faffa33:cvspub
    gumpwu:$ajfaal;323r0ofeeanv:cvspub
    henry:$fajkdpaieje:cvspub
    betty:fjkal;ffjieinfn/:cvspub
    anonymous::cvspub
    注意:上面的第二個字段(分隔符為 :)是密文口令,你要用程序或者用我的土辦法生成。
    編輯 readers 文件,加入下面幾行:
    anonymous
    betty
    編輯 writer 文件,加入下面幾行:
    laser
    gumpwu
    henry
    這樣就 ok 了,你再用幾個用戶分別登陸測試,就會發現一切都 ok 了。這里面的原理和說明我想就不多說了,其實很簡單,和系統管理用戶的概念是一樣的。

    上一頁 1 2


    七、建立新的CVS項目


    一般我們都已經有一個或多個項目了,這樣我們可以用下面步驟生成一個新的CVS項目。
    將一個工程文件置于CVs中進行版本控制,在CVS 術語中稱作導入(import)。從名字上就可以看出,在導入前需要為此作些準備工作。
    輸入操作的基本要求是有個"干凈"的目錄結構。"干凈"的意思是不需要版本控制的文件都被移走了(如編譯生成的文件,備份文件等等)。如果工程已經開始一段時間了,這就顯得很重要。在目錄中也許有些是不打算將其置于版本控制下的文件,但是又想將他們放在這里,這種情況下,你要在輸入之前將它們移走,然后再移回來。
    注意的是CVS 認為空目錄是不存在的。如果想增加一個既不包含文件又不包含子目錄的目錄,需要在其下創建一個啞文件。建議你創建一個名為 README.txt 的文件,其內容為對目錄的簡要說明。
    進入到已有項目的目錄,比如叫 cvstest:
    $cd cvstest
    運行命令將項目文件導入到cvs倉庫中:
    $cvs import -m "this is a cvstest project" cvstest v_0_0_1 start
    說明:import 是cvs的命令之一,表示向cvs倉庫輸入項目文件.
    -m參數后面的字串是描述文本,對項目進行描述,如果不加 -m 參數,那么cvs會自動運行一個編輯器(一般是vi,但是可以通過修改環境變量EDITOR來改成你喜歡用的編輯器)讓你輸入信息,cvstest 是項目名稱(實際上是倉庫名,在CVS服務器上會存儲在以這個名字命名的倉庫里)
    v_0_0_1是這個分支的總標記.沒啥用(或曰不常用)
    start 是每次 import 標識文件的輸入層次的標記,沒啥用。
    這樣我們就建立了一個CVS倉庫了,然后,我們可以把這個測試項目的文件刪除,試驗如何從倉庫獲取文件這會在后面的客戶端文章進行說明。


    在Win2k上安裝和使用CVS
    1.準備有關軟件:
    從 www.cvsnt.org 下載服務器 cvs-1.10.8NT.exe.zip
    從 www.wincvs.org 下載客戶端 WinCvs11b16.zip
    用winzip把cvs-1.10.8NT.exe.zip解壓到d:cvs。
    解壓并安裝wincvs.
    2.把路徑 d:cvs 加到path環境變量中。
    具體方法:點選"我的電腦",單擊右鍵,選屬性,點環境變量按鈕。
    3.建立CVS存儲目錄。
    打開一個dos窗口,鍵入"cvs -d :local:d:cvsroot init",然后你會發現d:cvs下面多了一個root子目錄。
    4.注冊CVS服務
    在dos窗口中,鍵入"ntservice -i d:cvsroot",屏幕顯示"CVS NT Service Installed successfully",打開控制面板中的服務,你會發現多了一個"CVS NT Service"服務
    用"net start cvs"啟動cvs服務。 用"net stop cvs"關閉cvs服務。
    5.設置密碼
    新建一個空白的passwd文件,放到d:cvsrootcvsroot目錄下。用pwgen.exe生成密碼。把用戶名和密碼寫到passwd文件,例如:test:OuIgxgsUZH48g
    6.使用wincvs
    選Admin->Perferences,設CVSROOT為":pserver:test@server:d:cvsroot",server為作為服務器的計算機的名稱。test為用戶名。
    7.登陸
    選Admin->login,輸入密碼登陸。
    8.導入模塊
    假設要管理的代碼已經存在于c:source目錄,選彈出菜單上的import module,選擇目錄c:source,輸入模塊名"test",wincvs就會把該目錄導入到模塊test中。
    9.導出模塊
    選Create->checkout module,輸入模塊名和相應的目錄就可以了。
    10。修改文件
    選中要修改的文件,點修改鈕(筆圖標)。然后修改文件,最后選彈出菜單上的commit selection,修改就被提交了。


    CVS NT服務器安裝指南
    下載地址:http://www.cvsnt.org
    運行 cvsnt_1.11.1.2.exe
    點兩次“Next”跳過“Welcome”界面開始安裝
    點“Yes”接受License
    點“Next”用默認的Typical安裝
    選“Yes”并點“Finish”,重新啟動


    到桌面,在“我的電腦”按右鍵,點“屬性”
    點“高級”,點“環境變量”
    選擇“系統變量”中的Path,點“編輯”
    在變量值后加“;C:Program FilesCVS for NT”(引號不要加入)
    點“確定”
    再“確定”


    進入控制面板,雙擊“CVS for NT”
    點“Install”安裝CVSNT服務
    Install按鈕會變無效,Uninstall變有效
    點“Add”,輸入“d:cvsroot”,點“OK”
    會提問是否創建目錄,回答“是”
    點“Start”啟動CVSNT服務


    在d:cvsrootCVSROOT目錄下創建一個文件名為passwd的文件(沒有擴展名)
    (怎么創建沒有擴展名的文件:
    點資源管理器菜單“工具”->“文件夾選項”
    點“文件類型”
    找到并選中“TXT 文本文檔”,點“高級”
    選中“始終顯示擴展名”,點“確定”,然后“關閉”)


    在d:cvsrootCVSRTOO下新建文本文件
    編輯該文件,把下面三行
    user1:user1encryptedpassword (加密密碼是用CVSNT帶的工具“Generate Passwords”生成的,安裝后菜單里有)
    user2:user2encryptedpassword
    user3:user3encryptedpassword
    加入,保存退出,然后把該文件改名為passwd(把擴展名去掉)


    加3個Windows用戶
    user1密碼同上面設的
    user2密碼同上面設的
    user3密碼同上面設的



    安裝wincvs(下載地址:http://www.cvsgui.org)后運行wincvs


    點“Admin”->Preferences
    CVSROOT 改為 user1@myservername:d:cvsroot
    Authentication 選擇 "passwd" file on the cvs server
    Use vesion 選擇 cvs 1.10 (Standard)


    然后“Admin”->“Login”,成功的返回碼為0
    然后可以Import一個module


    然后可以checkout這個module,如果checkout到同一個目錄,要把原來的目錄改名或刪除
    點Create->Checkout module
    module name 填 mymodulename
    Local folder如 d:user1
    在Globals頁里面把 Checkout read-only 不選中
    其它的不管,點“確定”即可


    checkout之前如果沒有login,必須先login一次,除非工作目錄,否則不需要重新login

    延伸閱讀

    文章來源于領測軟件測試網 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>