小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

在Linux和Windows下搭建CVS服務器與CVS客戶端的詳細配置指南

 天絕緣 2007-05-24

============================================ 
時間:2007-04-12
作者:飄揚
首發(fā):飄揚博客
網(wǎng)址:http://
Q Q: 47720194
郵箱:piaoyang168#163.com  
版權(quán)聲明:可以任意轉(zhuǎn)載,轉(zhuǎn)載時請務必標明原始出處和作者信息
============================================ 

摘要:本教程包含CVS的入門知識講解、在linux和windows下CVS服務器與CVS客戶端的配置指南,詳細介紹了配置過程,可以說是一篇組建CVS開發(fā)環(huán)境的入門、學習與提高的完美教程。通過本教程你可以在最短的時間里面最快的搭建好CVS服務器與CVS客戶端的的開發(fā)環(huán)境。如有不明之處,請聯(lián)系飄揚,你可以到我的博客飄揚博客http://www. 給我留言或QQ47720194,我會盡力解答你的問題。

***********************************
目錄:
一、CVS入門知識詳解
        1、什么是 CVS?
        2、CVS基本概念
二、Linux下CVS服務器與客戶端的配置
        1、Linux下CVS服務器的配置
        2、Linux下CVS客戶端的配置
三、Windows下CVS服務器與客戶端的配置
        1、windows下CVS服務器的配置
        2、windows下CVS客戶端的配置
四、結(jié)束語
***********************************


一、CVS入門知識詳解

1、什么是 CVS? 

CVS 是一種客戶機/服務器系統(tǒng),類似于microsoft SourceSafe,可以讓開發(fā)人員將他們的項目存儲在稱為資源庫的中央位置。使用 cvs 客戶機工具,開發(fā)人員可以對資源庫的內(nèi)容進行更改。CVS 資源庫會依次記錄對每個文件所做的每個更改,并創(chuàng)建一個完整的項目開發(fā)進展歷史。開發(fā)人員可以請求特定源文件的舊版本、查看更改日志,并根據(jù)需要執(zhí)行其它一些有用的任務。所有重要的免費軟件項目都使用 CVS 作為其程序員之間的中心點,以便能夠綜合各程序員的改進和更改。這些項目包括: Gnome, KDE, The GIMP, Wine, 等等。
 
CVS 的基本工作思路是這樣的:在一臺服務器上建立一個倉庫,倉庫里可以存放許多不同項目的源程序。由倉庫管理員統(tǒng)一管理這些源程序.這樣,就好象只有一個人在修改文件一樣.避免了沖突.每個用戶在使用倉庫之前,首先要把倉庫里的項目文件下載到本地。用戶做的任何修改首先都是在本地進行,然后用 cvs 命令進行提交,由 cvs 倉庫管理員統(tǒng)一 修改.這樣就可以做到跟蹤文件變化,沖突控制等等. 

CVS可以協(xié)助一組人共同開發(fā)一個工程。如果你是一個項目中的一組成員之一,CVS也能夠幫助你。除非你特別仔細,你很容易覆蓋其他人的工作。一些編輯器,例如GNUEmacs,試圖去判定一個文件是否被兩人同時修改。不幸的是,如果一個人使用其它的編輯器時,這個安全方式將不再有效。CVS使用讓不同開發(fā)者獨立工作的方式解決了這個問題。每一個開發(fā)者的工作都在他自己的目錄內(nèi),并且CVS將 在每個開發(fā)者的工作完成后進行合并工作。

由于 CVS 是典型的 C/S 結(jié)構(gòu)的軟件,因此它也分成服務器端和客戶端兩部分。不過大多數(shù)CVS 軟件都把它們合二為一了。我們這里就分別從服務器和客戶端的角度討論cvs的使用。

2、CVS基本概念

Repository(倉庫)
CVS的倉庫存儲全部的版本控制下的文件copy,通常不容許直接訪問,只能通過cvs命令,獲得一份本地copy,改動后再check in(commit)回倉庫。而倉庫通常為與工作目錄分離的。CVS通過多種方式訪問倉庫。每種方法有不同目錄表示形式。數(shù)據(jù)如何存放在repository中:隨著CVS版本的不同,存放結(jié)構(gòu)會發(fā)生變化,一般情況下用戶無需了解數(shù)據(jù)到底是如何存放的。

Revision(修訂版)
每一個file的各個revision都不相同,形如1.1, 1.2.1,一般1.1是該文件的第一個revision,后面的一個將自動增加最右面的一個整數(shù),比如1.2, 1.3, 1.4...有時候會出現(xiàn)1.3.2.2,原因見后。revision總是偶數(shù)個數(shù)字。一般情況下將revision看作時CVS自己內(nèi)部的一個編號,而tag則可以標志用戶的特定信息。

Tag(標簽)
用符號化的表示方法標志文件特定revision的信息。通常不需要對某一個孤立的文件作tag,而是對所有文件同時作一個tag,以后用戶可以僅向特定tag的文件提交或者checkout。另外一個作用是在發(fā)布軟件的時候表示哪些文件及其哪個版本是可用的;各文件不同revision可以包括在一個tag中。如果命名一個已存在的tag默認將不會覆蓋原來的;

Branch(分支)
當用戶修改一個branch時不會對另外的branch產(chǎn)生任何影響??梢栽谶m當?shù)臅r候通過合并的方法將兩個版本合起來;branch總是在當前revision后面加上一個偶數(shù)整數(shù)(從2開始,到0結(jié)束),所以branch總是奇數(shù)個數(shù)字,比如1.2后面branch為1.2.2,該分支下revision可能為1.2.2.1,1.2.2.2,...

Conflict(沖突)
完全是純文本的沖突,不包含邏輯上的矛盾,比如CVS不能解決如下問題:某人修改了函數(shù)f的參數(shù),而另外一個人在另外一個地方用老的參數(shù)調(diào)用該函數(shù)。文本沖突需要用戶自己參與解決,CVS無法自動解決。(如還有不明之處,請聯(lián)系飄揚,你可以到我的博客飄揚博客http://www. 給我留言或QQ47720194,我會盡力解答你的問題。)

Module(模塊):CVS服務器根目錄下的第一級子目錄。通常用于存放一個項目的所有文件
Check out(檢出):通常指將倉庫中的一整個模塊首次導出到本地。
Check in(導入)::通常指通過提交整個目錄結(jié)構(gòu)并創(chuàng)建一個新的模塊。
Release(發(fā)行版本):整個產(chǎn)品的版本
Update(更新):從模塊中下載其他人的修改過的文件。更新本地的拷貝。
Commit(提交):將自己修改過的文件提交到模塊中。

二、Linux下CVS服務器與客戶端的配置與使用

1、Linux下CVS服務器的配置
在RedHat Linux 7.1之后的版本上,都有自動安裝CVS服務器軟件,只要對該軟件進行設置,即可使用。此次配置我用的是虛擬機VMware環(huán)境下的linux redhat9.0,下面是具體的配置過程。

1.1 創(chuàng)建cvs組并加入用戶
在root權(quán)限下,創(chuàng)建一個cvs組并加入成員
1) 創(chuàng)建組:groupadd cvs
2) 打開/etc/group文件,找到該組,如cvs:x:514:,在后面添加要加入的用戶,比如piaoyang,chen等,以逗號隔開,編輯結(jié)果是:cvs:x:514:piaoyang, chen
只有加入這個組中的成員才能進行相關(guān)CVS操作。保存該文件。

1.2 創(chuàng)建一個倉庫 
假定將CVSROOT指向/usr/local(也可以指向別的目錄),用root登錄。 
1) 創(chuàng)建cvsroot目錄:mkdir /usr/local/cvsroot 
2) 設置該目錄的模式:chmod 1777 /usr/local/cvsroot 
3) 修改環(huán)境變量:export CVSROOT= /usr/local/cvsroot
4) cvs init  這樣就創(chuàng)建了 CVSROOT。
5) 更新環(huán)境變量:
#source  /etc/profile
此時系統(tǒng)已經(jīng)認識$CVSROOT這樣的環(huán)境變量

1.3 裝入源代碼
1) 進入代碼所在目錄:cd [sourcedir],如cd test
2) 裝載cvs import -m "[repository test]" [cvstest] [vendortag] [releasetag]
-m后面引號內(nèi)填入log內(nèi)容,接下來是源代碼模塊名稱,接著是裝載者,最后是標識符號,
例如:cvs import –m “cvs test” cvstest piaoyang start
cvs組中的用戶也可以創(chuàng)建倉庫,但必須有寫權(quán)限,該權(quán)限的設置在下面將會提到。(如還有不明之處,請聯(lián)系飄揚,你可以到我的博客飄揚博客http://www.給我留言或QQ47720194,我會盡力解答你的問題。)

1.4 設置權(quán)限
cvs初始化結(jié)束以后,在管理員用戶(這里是cvs用戶)的主目錄/usr/local/cvsroot/下有一個 CVSROOT 目錄,這個目錄里有三個配置文件:readers,writers, passwd。我們可以通過設置這三個文件來配置 CVS 服務器用戶的權(quán)限,下面分別介紹這幾個文件的作用:
    readers文件:此文件中的用戶允許對模塊進行讀取,不允許寫入;
    writers文件:此文件中的用戶允許對模塊進行讀取和寫入;
    passwd文件:此文件存儲用戶名和密碼,當用戶登錄時進行驗證;
    1) readers和writers的格式如下,每個用戶占據(jù)一行:
      aaa
      bbb
      ccc
    2) passwd文件的格式如下,每個用戶占據(jù)一行:
          [cvs 用戶名]:[加密的口令]:[等效系統(tǒng)用戶名]
    如:  piaoyang:$1$rPVPciBw$IK3fb4jO7hQbPXFjK3ee..:piaoyang
    其中“piaoyang:$1$rPVPciBw$IK3fb4jO7hQbPXFjK3ee..:”從/etc/shadow中拷貝過來。
    3) 上面三個文件在缺省安裝的時候可能都不存在,需要我們自己創(chuàng)建,好吧,現(xiàn)在還是讓我們用一個例子來說明吧。假設我們有下面幾個用戶需要使用 cvs: 
   laser,gumpwu,henry,betty,anonymous 
其中 laser 和 gumpwu 是系統(tǒng)用戶,而henry, betty, anonymous 我們都不想給系統(tǒng)用戶權(quán)限,并且 betty 和 anonymous 都是只讀用戶,而且 anonymous 更是連口令都沒有。 
然后編輯 cvs 管理員家目錄里 CVSROOT/passwd 文件,加入下面幾行: 

laser:$xxefajfka;faffa33:cvspub 
gumpwu:$ajfaal;323r0ofeeanv:cvspub 
henry:$fajkdpaieje:cvspub 
betty:fjkal;ffjieinfn/:cvspub 
anonymous::cvspub 

注意:上面的第二個字段(分隔符為 :)是密文口令,從/etc/shadow中拷貝過來即可(此方法適合cvs用戶較少的情況,如果用戶過多,則需要自己用程序生成密碼了)。 
編輯 readers 文件,加入下面幾行: 
anonymous 
betty 
編輯 writer 文件,加入下面幾行: 
laser 
gumpwu 
henry 
這樣就 ok 了,你再用幾個用戶分別登陸測試,就會發(fā)現(xiàn)一切都 ok 了。這里面的原理和說明我想就不多說了,其實很簡單,和系統(tǒng)管理用戶的概念是一樣的。

1.5 設置開機自動運行CVS
1) 在/etc/xinetd.d目錄下生成一個文件cvspserver。輸入命令: 
    touch cvspserver 
    vi cvspserver 
    在cvspserver文件里寫入如下內(nèi)容并保存:
# CVS : current version contrl system 
# DEFAULT: services is enable 
# this server script was be writed by  
# www.  

service cvspserver 


    socket_type = stream 
    protocol = tcp 
    wait = no 
    user = root 
    server = /usr/bin/cvs 
    server_args = -f --allow-root=/usr/local/cvsroot pserver 
    log_on_success +=USERID 
    log_on_failure +=USERID 
    disable = no 
}

2) 修改該文件權(quán)限: 
chmod 644 cvspserver
3),到/etc/rc.d/init.d路徑下,運行如下指令重新啟動xinetd即可:
./xinetd restart
4) 重啟后用root登錄,察看cvs服務器是否已經(jīng)運行: 
netstat -l |grep cvspserver
如果返回tcp 0 0 *:cvspserver *:* LISTEN,則說明cvs服務器已經(jīng)運行。

2、Linux下CVS客戶端的配置
為了連接到 CVS 資源庫,您需要知道稱為 "CVSROOT" 的路徑。CVSROOT 是一個字符串,就象 URL,它告訴 CVS用戶遠程資源庫在哪里,以及如何連接它。不僅如此,根據(jù) CVS 資源庫是本地的還是遠程的,以及連接到它的不同方式,CVS 還有許多不同的 CVSROOT 格式。

2.1 連接CVS服務器
當然你必須擁有cvs用戶賬號和密碼,以及相關(guān)權(quán)限。在Linux環(huán)境下:
1) 本地 CVSROOT 
    export CVSROOT=/usr/local/cvsroot (告訴CVS客戶端,存放代碼的資源庫在什么地方)
    一個實際的例子,在版本管理員將代碼庫存放在192.168.0.8 的機器上,路徑為:
    /usr/local/cvsroot(如果你telnet 到 192.168.0.8 的機器上的時候,此時你就是在本機)
2) 遠程密碼服務器 CVSROOT
    export CVSROOT=:pserver:piaoyang@192.168.0.8:/usr/local/cvsroot(注意冒號不能漏掉,句子中間沒有空格)
    pserver 是CVS內(nèi)部的一種傳輸協(xié)議。
    piaoyang 是用戶名,
    192.168.0.8 機器的IP或名字(如果有DNS才能用名字)
    /usr/local/cvsroot 是代碼庫的具體路徑
(注意:如果你不想每次敲這么多枯燥的命令,你可以在你登陸的時候讓系統(tǒng)作這些事情,具體的作法是修改你登錄的環(huán)境變量?,F(xiàn)在用piaoyang作為例子,在文件/home/piaoyang/.bash_profile后面加入
 export CVSROOT=/home/cvsroot 或export CVSROOT=:pserver:piaoyang@192.168.0.8:/home/cvsroot 
并在根目錄下運行:. ./.bash_profile)

2.2 登錄CVS服務器
 cvs login 
(Logging in to cvs@192.168.0.8) 
CVS password:(在此輸入密碼)

2.3 拷貝相應模塊代碼并進行開發(fā)
如輸入: cvs -z5 checkout VPN 
此命令告訴 CVS 客戶端使用 gzip 壓縮級 5 ("-z5") 在慢速連接上加快傳輸速度,來檢出 ("checkout")VPN模塊。 
一旦檢出命令完成,將在包含最新源碼的當前工作目錄中看到 "VPN" 目錄。還會注意到每個子目錄下都有一個"CVS"目錄 -- CVS 在這些目錄中存儲帳戶信息,可以放心地忽略它們。一旦檢出結(jié)束,用戶就無需擔心是否設置了 CVSROOT 環(huán)境變量,也無需再在命令行上指定它,因為現(xiàn)在所有額外的 "CVS" 目錄里都有它的緩存。 
記?。褐恍枰獮槌跏嫉卿浐蜋z出設置 CVSROOT。至此你就可以在剛才check out的VPN模塊上進行修改或開發(fā)了。(如還有不明之處,請聯(lián)系飄揚,你可以到我的博客飄揚博客http://www.給我留言或QQ47720194,我會盡力解答你的問題。)

三、Windows下CVS服務器與客戶端的配置

1、windows下CVS服務器的配置
在此,我們以WinCVS為例來介紹。WinCVS顧名思義,是用在windows上的,它是一款相當不錯的基于Windows的CVS客戶端軟件。安裝時沒有什么特別的地方,與普通的Windows軟件相同,一路next就OK了。(最新的WinCVS可以從http:///project/showfiles.php?group_id=10072地址下載到,也可以在http:///project 上下載到最新的或其它版本的WinCVS。)由于是軟件界面配置,所以針對界面選項填入相應的參數(shù)即可,在此不再贅述。

2、windows下CVS客戶端的配置
同樣我們以WinCVS為例來介紹。安裝這個WinCVS不用再啰嗦一遍了吧,跳過,來看配置過程!

2.1 配置WinCVS
選擇Admin->Preferences…,在出現(xiàn)的界面上進行一般選項的設置:
1) Authentication:用來配置cvs服務器的認證方式,可以從下拉框中選擇其它的認證方式,不過一般只要選擇默認的pserver方式就可以,要注意的是必須與cvs服務器配置時所指定的認證方式一致;
2) Path:用來配置cvs在服務器上的主目錄路徑,也就是服務器上用進行cvs初始化的目錄,如:/home/cvsroot;
3) Host Address:用來配置cvs服務器所在服務器的地址,可以是IP地址,也可以是DNS名,如:10.104.1.204;
4) User name:用來配置要使用些WinCVS來登錄CVS服務器的用戶名,如:cvsyxwu,用戶的登錄必須由管理員把其添加cvs用戶組中;
5) CVSROOT:此項一般都不需要用戶進行修改,用戶在輸入上邊的幾個選項時,系統(tǒng)將自動根據(jù)用戶的輸入生成此項的相應內(nèi)容。
6)在上一個界面上選擇“Globals” ,進行全局選項的設置,此項的配置主要是要注意這幾選項:
第一,Checkout read-only不要選上,否則,checkout出來的源代碼將不允許用戶進行修改,并且此選項默認是選中的;
第二,Prune (remove) empty directories也不要選上,否則,會自動刪除空目錄;
第三,對一般配置沒有特殊要求的,把Dirty files support、Supply control when adding與TCP/IP compression選項選中;

2.2 登錄WinCVS服務器
選擇Admin->login,將出現(xiàn)如下對話框要求用戶輸入登錄口令。輸入口令后,選擇“OK”按鈕,如果CVS服務器與WinCVS的配置都沒出錯的話,將在CVS的狀態(tài)欄中提示:
cvs -z9 -d :pserver:cvsyxwu@10.104.1.204:/home/cvsroot login
Logging in to :pserver:cvsyxwu@10.104.1.204:2401/home/cvsroot
***** CVS exited normally with code 0 *****
code 0表示正確的登錄;而如果出錯的話,將是code 1,那么要根據(jù)錯誤的提示進行相應的修改。

2.3拷貝相應模塊代碼并進行開發(fā)
1) 在workspace中的Modules選中要存放checkout模塊的目錄;
2) 選擇Create->Checkout Modeles,將出現(xiàn)一個對話框,需要進行選擇。其中,Module name and path on the server就是要存放checkout 內(nèi)容的目錄,由用戶輸入;而Local folder to checkout to就是第一種用戶所選擇的目錄。
3) 至此你就可以在剛才check out的代碼上進行修改或開發(fā)了。

四、結(jié)束語
如果你是通篇讀到這里,那么到這里,你基本上已經(jīng)能為自己或公司配置一個實用的CVS服務器與CVS客戶端了,無論是在Linux下,還是在Windows下。謝謝你的耐心與信任,同時也對你的小有成就小小的祝賀一下。在最后飄揚要申明的是,本教程里的大部分內(nèi)容是由網(wǎng)上多篇介紹CVS的文章提取而來,飄揚只是用自己的邏輯和語言將這些內(nèi)容串聯(lián)起來。在此,飄揚對這些文章的原作者深表感謝。如還有不明之處,請聯(lián)系飄揚,你可以到我的博客飄揚博客http://www. 給我留言或QQ47720194,我會盡力解答你的問題。以此拙作,希望能給大家?guī)バ┪⒌膸椭?br>
本文為飄揚原創(chuàng),首發(fā)飄揚博客,http://,作者郵箱piaoyang168#163.com,請尊重版權(quán),轉(zhuǎn)載請保留本行說明。


Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1588463

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多