*/
14 *** testb 工程
同 11 testa 的過程
建立以后,我們會(huì)發(fā)現(xiàn):
test1,tes2 用戶運(yùn)行 cvs ls 的時(shí)候,只能看見 testa
test3,tes4 用戶運(yùn)行 cvs ls 的時(shí)候,只能看見 testb
而 cvsadmin 用戶,可以看見全部的 Repository(cvsroot,testa,testb)
15 *** 完成,可以測(cè)試實(shí)驗(yàn)的結(jié)果了
********
* 備注*
*******
1. 基本概念介紹
refers to
http://www.guoly.com/wincvs-guide.html
CVS是很早的時(shí)候在Unix下發(fā)展起來的,它使用的術(shù)語(yǔ)比較特殊,需要先熟悉和理解,這是使用CVS的第一步。
1.1 Repository: 中文名稱:倉(cāng)庫(kù)。它是 CVS服務(wù)器(可能在遠(yuǎn)程,也可能在本地)的根目錄,我們所有的工作都保存在這個(gè)倉(cāng)庫(kù)中,包括源代碼和這些代碼的全部歷史。你可以把Repository想像成一個(gè)倉(cāng)庫(kù),倉(cāng)庫(kù)中有許多“木桶”,每個(gè)“木桶”
是我們的一個(gè)讓CVS管理起來的工程。對(duì)于CVS來說,這些“木桶”之間是沒有什么關(guān)聯(lián)的,刪除一個(gè)“木桶”不會(huì)影響別的“木桶”。我們所想像的木桶,在CVS術(shù)語(yǔ)中,又叫模塊(Module)。
1.2 Module:中文名稱:模塊。是上面我們所想像的倉(cāng)庫(kù)中的“木桶”,里面放的是一個(gè)項(xiàng)目的所有文件(包括源代碼,文檔文件,資源文件等等)。在物理上,Module是CVS服務(wù)器根目錄下的第一級(jí)子目錄。
1.3 Import:中文名稱:導(dǎo)入。我們本地有一個(gè)軟件項(xiàng)目,里面有許多各種類型的文件,都需要用CVS進(jìn)行版本管理,那么第一步是把這個(gè)軟件項(xiàng)目的整個(gè)目錄結(jié)構(gòu)都Import到CVS的倉(cāng)庫(kù)中去。經(jīng)過這種導(dǎo)入,CVS將為你的項(xiàng)目創(chuàng)建一個(gè)新的“木桶”----Module,即模塊。
1.4 Checkout:中文名稱:導(dǎo)出。指將倉(cāng)庫(kù)中的一個(gè)“木桶”(Module, 模塊)中的東西導(dǎo)出到本地的工作目錄下,然后我們可以在WinCvs的管理下,進(jìn)行工作,修改其中的內(nèi)容。
1.5 Commit:中文名稱:提交修改。我們?cè)诒镜氐墓ぷ髂夸浵,?duì)工程中的文件進(jìn)行修改,這些修改,需要提交給CVS的倉(cāng)庫(kù),這個(gè)過程,叫Commit。你可以Commit一個(gè)文件,也可以Commit整個(gè)目錄。
1.6 Update:中文名稱:同步。它與Commit相對(duì)應(yīng),是從倉(cāng)庫(kù)中的“木桶”(模塊)中下載你同事修改過的文件(別忘記你的項(xiàng)目有許多人共同參與),如果這個(gè)文件在你本地也有,會(huì)更新本地的拷貝,如果你本地沒有,會(huì)把新文件下載到你的本地。
1.7 Revision:中文名稱:文件版本。這是CVS中一個(gè)需要特別注意的概念,它指的是單個(gè)文件的版本,而不是整個(gè)項(xiàng)目的版本;旧,單個(gè)文件每次的修改,經(jīng)過Commit之后,它的Revision都要改變一次,比如從1.1到1.2到1.3等等。特別要注意,單個(gè)文件的版本(Revision)與整個(gè)工程產(chǎn)品的版本(Version,或者Release)可以沒有任何關(guān)系。例如,整個(gè)產(chǎn)品現(xiàn)在發(fā)行1.0版本(Version 1.0)了,但是產(chǎn)品的源代碼文件中,有的文件版本(Revision)可能是1.9, 有的是2.1,等等。這很容易理解,因?yàn)闉榱税l(fā)行產(chǎn)品V1.0,我們需要對(duì)源代碼進(jìn)行多次修改編譯。
1.8 Release:中文名稱:發(fā)行版本。整個(gè)產(chǎn)品的版本,例如VC5.0, VC6.0等。
1.9 Tag:中文名稱:標(biāo)簽。在一個(gè)開發(fā)的特定期,對(duì)一個(gè)文件或者多個(gè)文件給的符號(hào)名,一般是有意義的字符串,如 “stable”,“release_1_0”等。比如,我們對(duì)某個(gè)文件的1.5版本加上標(biāo)簽:“memory_bug_fixed”,借助這個(gè)有意義的標(biāo)簽,我們可以理解1.5版本解決了內(nèi)存Bug,所以說Tag賦予了版本一些文字含義。
上述這些基本概念,與其它的版本控制工具(例如Microsoft Source Safe)有一定的差異,建議您仔細(xì)體會(huì)。
2. cvsroot 文件介紹
舉例 :exmple
.#exmple 以 .# 開頭的文件是備份文件,不能被 checkout
exmple,v 以 ,v 結(jié)尾的文件:此文件記錄了文件的各次版本變化的歷史記錄,cvs 根據(jù)此文件,進(jìn)行版本控制。
exmple 該文件記錄真正的文件內(nèi)容,在進(jìn)行 cvs 命令操作的時(shí)候,和 exmple,v 一起作為 cvs 版本控制的依據(jù)。
3. cvs 命令
cvs help
# 列出所有命令
cvs --help command
# 查看某個(gè)命令的語(yǔ)法
命令簡(jiǎn)寫
http://www.mobilefish.com/developer/cvsnt/cvsnt.html
*************
* refers to *
*************
http://blog.csdn.net/lonelyegg/
http://www.mobilefish.com/developer/cvsnt/cvsnt.html
http://blog.csdn.net/jdskyy/archive/2005/10/18/508567.aspx
http://www.8848software.com/scmforum/forum.asp?FORUM_ID=49&CAT_ID=9
(一個(gè)討論論壇)
*******
* faq *
*******
1.
關(guān)于登陸CVSNT server 出現(xiàn)信息 :
Error reading from server xxxx: -1: Unknown error
的解釋
一般是無法鏈接到 CVSNT server ,是通訊受到阻止的原因。
排查一下原因:
查看本機(jī)的防火墻;
局域網(wǎng)中的端口限制。
***********
* 遺留問題*
***********
1. 其他的登陸協(xié)議的登陸方法
2. 訪問權(quán)限控制,如何讓 owner 擁有其所在 Repository 的 fileattr.xml 修改權(quán)限?
這樣,Repository 的創(chuàng)建者擁有其維護(hù)權(quán)限了,減輕了 CVSNT Server 管理員的權(quán)限。如果 Repository 有很多個(gè)的話,僅靠管理員來維護(hù)是不現(xiàn)實(shí)的。
control