免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
windows環(huán)境CVS client使用入門
v0.1
created by 曹曉鋼,2002/01/03 last updated by $Author$,$Date$
本文純粹為“入門”性質(zhì),具體深入的命令解釋請參見CVS手冊。
本文首先介紹關(guān)于CVS的基礎(chǔ)知識,然后對于流行的幾種工具單獨給出流程實例。
1,CVS
CVS (Cuncurrent Versions System)是基于TCP/IP協(xié)議的版本控制工具,也是Open source界最重要的開發(fā)工具之一。
它原來主要工作在UNIX平臺下,現(xiàn)在在windows平臺上也出現(xiàn)了很多GUI工具。
關(guān)于其由來,發(fā)展,請參閱www.cvshome.org 。
CVS和其他大部分版本控制軟件一樣,是Client/Server結(jié)構(gòu)的。你必須在本地為CVS repository準備好一個目錄,來和服務(wù)器同步源代碼。
和在Windows 開發(fā)平臺中擁有很大用戶群的Visual Source Safe(VSS)相比,CVS主要由兩個不同之處。
一是VSS依靠服務(wù)器上的一個共享目錄提供服務(wù),每一個client必須能夠訪問這個共享目錄。這也就決定了source safe在TCP/IP環(huán)境下使用很困難。對于分布跨越數(shù)個城市甚至國家的工作小組來說,只有通過VPN才能夠安全的訪問source safe數(shù)據(jù)庫。(SourceGear公司(www.sourcegear.com)發(fā)售名為SourceOffSite的商業(yè)軟件包,US$239 per user,也可以為遠程用戶提供通過TCP/IP訪問source safe數(shù)據(jù)的能力。) 而CVS依靠TCP/IP連接提供服務(wù),所以它天生就是為了在internet上協(xié)同工作而設(shè)計的。雖然基本的pserver連接安全性不是很高,但是通過使用SSH,可以獲得很高的安全性。
二是CVS反對對文件上鎖的機制。VSS以及其他很多傳統(tǒng)版本控制工具要求一個文件只能有一個使用者,它必須先checkout聲明編輯文件的獨享權(quán)力,直到checkin為止。但是對于地理上不限制使用者位置的CVS來說,等待一個用戶checkin是一件痛苦的事情,而互相溝通比一個緊密工作的團體更困難。CVS采取多個用戶可以同時對一個文件進行編輯,然后commit的方式解決這個問題。假設(shè)由于溝通不足出現(xiàn)沖突,使用者必須手工解決沖突之后再進行commit。在這種情況下,沖突的開發(fā)者必須努力進行足夠的溝通以避免再次沖突。
CVS服務(wù)器可以被配置為把commit記錄自動張貼到新聞組或者開發(fā)者的email信箱中去。注意這些輔助記錄將有助于開發(fā)者之間的合作。
2, repository,module
CVS服務(wù)器上,一個源代碼倉庫被稱為一個repository,一個server上通??梢赃\行多個repository,每個repository都是完全獨立的,可以有不同的用戶列表和訪問規(guī)則。在一個repository之下,文件按照module組織,每一個module就相當于一個工程,大致上相當于Source safe里面的project。
VSS在你連接上服務(wù)器之后,會列出所有的project。但并不是所有的CVS server都會提供module的列表。事實上,哪些module被公開是由管理員控制的。如果你知道一個被隱藏的module的名字,你仍然可以正常的訪問這個module。
3,CVSROOT
CVS依靠運行在服務(wù)器上的一個服務(wù)程序提供TCP/IP的連接。為了訪問一個CVS數(shù)據(jù)庫,你必須知道你所使用的協(xié)議,服務(wù)器的地址,服務(wù)器提供的Repository的名稱以及你的用戶名和密碼。
有數(shù)種協(xié)議可供選擇。Unix/Linux機器上的CVS通常使用pserver協(xié)議,這是一種不非常安全的協(xié)議,但是如果你有額外的安全要求,可以通過SSH進行增強。除此之外,NT機器還支持ntserver協(xié)議,它通過主機的NT用戶表進行訪問控制(但是這是在internet上不可用的方法)。kserver和gserver協(xié)議用的比較少,他們依據(jù)Kerboses提供額外的安全保護。
你有必要知道CVSROOT這個參數(shù)。CVSROOT是一個用":"開始及分隔各個部分的字符串,它包含了協(xié)議、用戶名、服務(wù)器地址和repository名稱。對于用戶來說,CVSROOT就像URL一樣,是訪問一個server的途徑。
一個典型的CVSROOT=:perser:cao@61.155.107.187:/cvs。這里,pserver是協(xié)議名稱,cao是用戶id,61.155.107.187是主機ip,/cvs是repository的名字。NT主機的repository一般會采取d:/CVSROOT之類的格式。
另一個例子是:pserver:anonymous@jivesoftware.com:/cvs,這是jivesoftware公司提供的開放源代碼java技術(shù)論壇的CVSROOT。
在windows下使用命令行方式,這個參數(shù)可以通過一個環(huán)境變量使用。在windows 2000/XP系統(tǒng)中,你可以通過在‘My computer‘的properties中選擇advanced,然后選擇‘Enviroment Variables‘來輸入這個環(huán)境變量。
4,checkout,update
為了得到module下面的源代碼,你只需要使用checkout指令。和Visual source safe不一樣,checkout只是取得文件,而非鎖文件。
如果你已經(jīng)有了本地文件,為了和server保持同步,你需要進行update操作。update會自動把server上的新內(nèi)容取到本機來,如果你本地文件進行過了改動,它會幫您做合并工作。
checkout 和 update既可以針對一個特定的文件,也可以針對一個目錄或者整個module。
5,  commit
如果你對本地代碼做了任何修改,或者增加一個文件,刪除一個文件,每當你需要把你的改變提交到server上的時候,你就需要做commit動作。假設(shè)兩個人都在本地修改了同一個文件,那么他們就像在進行一個競賽,如果你快,那么你贏了。后commit的人將被server拒絕,不得不合并你的修改再次提交。
commit既可以針對一個特定的文件,也可以針對一個目錄或者整個module。
6,  revision
Revision是指每一個文件的版本信息。當你第一次增加一個文件到repository的時候,它會有一個初始revision是1.1,以后每次提交,就會增加到1.2,1.3...
在一個branch中的文件,有相對于這個branch的版本號。如果你對文件作了tag,那么你會看到revision變成1.1.1.1的形式。具體的含義我們在branch和tag的時候描述。
7,branch
Branch是一棵正常生長的代碼樹中的枝杈。開始的時候,任何一個module都有一個主枝被稱為‘HEAD‘。
一個branch最終要么被合并到主干中去,要么被結(jié)束。branch通常用來debug,如果這個bug被fix了,修改bug的代碼應(yīng)該被合并到主枝上去。一個branch也可能經(jīng)歷多次與主枝的合并。
8,  tag
Tag用來進行標示必要的信息。當您進行一次公開發(fā)布之前,您有必要對主枝標示"release 1.0"。這樣您以后就可以隨時回到這個版本。
//to do: 請完善這里的描述
在得到CVSROOT和你的口令之后,你就可以試著登陸了。
首先,由于其他所有的GUI工具都是基于CVS基本協(xié)議的,而且他們可能會提供CVS的命令行或者等價形式作為顯示的一部分,所以你應(yīng)該對命令行操作有所了解。如果你還沒有一個cvs。exe的命令行程序,從www.cvsnt.org你可以得到一個cvsnt的下載連接,其中就包含了一個命令行的cvs.exe程序。我們先從它開始(為了作為一個client使用,你不需要安裝cvsnt的server組件)。CVSNT的cvs.exe是專門為windows編寫的,你需要把cvs.exe放在你的path里面。
1.進入命令行方式。
和VSS一樣,你也需要在本地有一個工作目錄對應(yīng)于一個repository。假設(shè)這個目錄是‘d:\works\sandbox‘。請切換到這個目錄。
輸入"cvs"。你會看到:
這些提示信息告訴您關(guān)于cvs的基本語法。cvs后面跟著的是全局參數(shù),然后是命令,最后是命令的參數(shù)。
2.login
正確的login不會有任何輸出,否則會告訴你錯誤原因。
cvs
3.下面我們看看這個CVS server中有哪些module。
4.假設(shè)現(xiàn)在我們工作的項目是projectX,下面我們需要得到它下面的全部文件。
現(xiàn)在讓我們看一下我們得到了什么。
在d:/works/sandbox目錄下,你可以看到有一個projectX目錄。這就是你得到的所有文件。
這個目錄下你會發(fā)現(xiàn)一個叫做 CVS的目錄。危險!請不要刪除這個目錄,或者改名,或者改動其中的任何文件,除非你知道你在做什么。這個目錄是CVS的控制目錄。如果你用過source safe,你一定很熟悉。scc這個文件,CVS目錄的作用就和這個控制文件一樣,都是用來記錄你訪問服務(wù)器的參數(shù)。
這里我們需要解釋一下cvs和VSS的名詞差別。在VSS中,checkout意味著你將獲得一個文件的修改權(quán),而cvs中checkout的這個含義取消了,僅僅指取得文件的新版本。很多cvs server會有一個anonymous用戶,他只有checkout權(quán)限,也就意味著它只讀。
5.讓我們試著加入一個文件:
在d:/works/sandbox/projectX下,新建一個文件newfile.txt,
然后,在這個目錄下執(zhí)行:
你需要commit它才能被sever接受。
一個notepad窗口彈出請您輸入注釋。
這是commit完成的結(jié)果?,F(xiàn)在的版本號是1.1。
6.好了,現(xiàn)在假設(shè)您需要改一下這個文件的內(nèi)容。
CVS可以幫助您比較現(xiàn)在您的版本和repository中的版本有什么不同。
好了,現(xiàn)在您可以提交您的新文件。
CVS會幫您保留您的各個版本。在commit之后,現(xiàn)在我們來看一看各個版本的history。
7.最后,為了完成這個試驗,請把這個newfile文件刪去。
我們現(xiàn)在認識了一些最基本的CVS入門級指令。
其實CVS是非常強大的,我們并沒有用到一些更復(fù)雜的功能,請參閱cvs的手冊來得到更為詳盡的幫助。
在多人同時開發(fā)的時候,沖突有時候也是不能避免的。
// to do:加入處理 cvs update和處理merge的部分。
更多的資料請參閱Karl Fogel的《Open Source Development With CVS》一書。該書的中文譯本《CVS開源軟件開發(fā)技術(shù)》由機械工業(yè)出版社出版(ISBN 7-111-08891-3/TP.1885,人民幣35.00)。按此連接到華儲網(wǎng)上電腦書店訂購http://www.huachu.com.cn/asp/book/brow.asp?lbbh=B99112091
好了,就像黑白電影總是會過渡到彩色電影一樣(正巧,就像現(xiàn)在發(fā)生在移動電話市場的情況一樣),cvs命令行之外,一些圖形界面的程序被編寫出來簡化你的操作。由于CVS的協(xié)議是公開的,所以,只要你的編程語言支持socket通訊,你也可以寫一個。這個世界上有好幾個這樣的嘗試,WinCVS就是其中一個。它是在win32平臺上用MFC開發(fā)的。從我自己的體會來看,這是一個有益的嘗試,但是還遠遠稱不上精美。和VSS和source off site,borland的tram source,以及PVCS的界面比較,這個windows界面還顯得很粗糙,差強人意。
但是我們還是可以從它開始進行我們的工作。
下載請至www.cvsgui.org,那里有最新的版本。
打開開始菜單的之后,你看到的是這樣一個界面:
界面由3個主要區(qū)域組成,坐上角是目錄結(jié)構(gòu),右上角是文件夾詳細內(nèi)容,下方是CVS命令的log。你可以從下方的log中得知cvs運行的詳細信息。
首先你要做的事情就是告訴winCVS你的CVSROOT。
這個對話框在winCVS1。2和1。3的各個版本中稍有不同,但是不妨礙你輸入CVS服務(wù)器的詳細信息。
下一步就是login。
好了,現(xiàn)在我們就可以去得到一份jive2的源代碼了。
你可以看到,winCVS默認會加上壓縮的參數(shù),這樣可以減少網(wǎng)絡(luò)流量,加快速度。
同樣,用winCVS進行文件修改也是挺方便的。
以上就是winCVS的簡要操作指南。更進一步的復(fù)雜操作,請參閱其幫助。
評價:值得關(guān)注,但不推薦。
TortoiseCVS已經(jīng)是一個相當成熟的cvs界面了,它的工作方式也是非常有趣的。
TortoiseCVS是一個簡潔有效的CVS界面。你完全可以用它替代winCVS做日常絕大多數(shù)的工作。他獨特的運行方式非常迷人,在一些商用配置管理工具,比如Rational ClearCase中,你也可以看到這樣的windows explorer擴展程序的工作方式。
缺點:
1,tortoiseCVS會一直不釋放它所操作的一些CVS文件和文件夾的系統(tǒng)資源。你可能會在試圖刪除一個在CVS控制之下的目錄時遇到麻煩。windows系統(tǒng)認為有另一個進程正在打開它(顯然就是TortoiseCVS),我沒有找到如何殺掉在后臺執(zhí)行的TortoiseCVS的方法。在這種情況,用TortoiseCVS去update一下另一個module有所幫助?;蛘哒堉仄鹉愕膃xplorer。
2,如果你需要在兩個不同的server或者repository上做checkout的工作,TortoiseCVS有一個bug。它會在你輸入CVSROOT信息,checkout第二個module的時候仍然使用第一個repository的CVSROOT。但是再做一次同樣的操作就會成功的達到你的目的。
評價:推薦。
按此進入關(guān)于使用TortoiseCVS的詳細說明
使用java編寫的CVS GUI在過去一兩年中得到了長足的發(fā)展。拜jdk1.3所托,現(xiàn)在java程序的執(zhí)行速度也有很大提高。Netbeans是由sun贊助的一個開放IDE,它其中包含了了CVS的基礎(chǔ)類庫。一個商業(yè)性的GUI,SmartCVS,就是在netbeans的穩(wěn)定的cvs核心之上編寫的。 雖然SmartCVS的商業(yè)版本收費,但是其基礎(chǔ)版本是完全免費的,而這個基礎(chǔ)版本已經(jīng)足夠大多數(shù)應(yīng)用所需。
SmartCVS你可以在www.regnis.de下載。
SmartCVS自從1.2beta版本開始引入smartCommit,不再區(qū)分add和checkin,統(tǒng)一使用commit進行操作。
利用SmartCVS,你也可以看到一個文件的歷史,以及圖形化表示的各個分支。
總結(jié):SmartCVS正如他的名字所說的,是一個相當聰明,精致,漂亮的CVS 客戶端。作為日常工作它是完全可以勝任的。如果和TortoiesCVS結(jié)合起來,可以給你相當理想的CVS工作平臺。
同時,它也可以在所有jdk環(huán)境中運行,不僅僅局限于windows平臺。
IDE集成
對程序員來說,真正在編碼的時候,IDE才是每天接觸最多的環(huán)境。如果能夠在熟悉的IDE中使用CVS,當然實用性增強很多。Visual source safe 在Microsoft的開發(fā)工具產(chǎn)品VB,VC中集成得相當出色,也大大提高了使用使用Microsoft開發(fā)平臺的工作效率。
下面我們就來看看一下在流行的java開發(fā)工具中如何使用CVS。
Visual age for java支持一個開放的Tool API,CVSin就是這樣的一個tool。
下載地址:
安裝參見其內(nèi)部readme文件。
jBuilder很早就在3.0中內(nèi)置CVS支持,而且當時cvs是jbuilder唯一一個正式支持的源代碼管理工具。在最新的Builder 6中,當然對CVS也支持得很好。
IBM新的開放式集成開發(fā)環(huán)境,將是IBM visual age 系列開發(fā)工具的下一個平臺。它提供CVS作為基礎(chǔ)集成的一部分。在Eclipse中訪問CVS是一件相當輕松自如的事情,Eclipse按照自己的需要封裝了CVS,你可以看到,和其他訪問方式完全不同,Eclipse是到現(xiàn)在為止最強大的CVS工作平臺。
這是一個用于Visual Studio的CVS插件,您可以利用它不離開IDE集成環(huán)境進行checkout/commit的操作。
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
CVSNT-2.5.03與TortoiseCVS-1.8.25配置方法記錄
搭建CVSNT環(huán)境手記
CVSNT在Windows下的安裝和使用
TortoiseCVS 使用者手冊中文版(jiing‘s blog)
CVS+MyEclipse配合使用教程
Redhat linux下cvs的安裝配置
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服