欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
版本控制相關(guān)資源( Pragmatic Version Control Sources )

版本控制相關(guān)資源( Pragmatic Version Control Sources )

1、cvs相關(guān)

在Eclipse 2.0中使用版本控制系統CVS

董向輝 (xianghui.dong@mail.ia.ac.cn)
2002 年 7 月

2002年6月28日,Eclipse 2.0正式版已經(jīng)正式完成,這將是Java開(kāi)發(fā)工具歷史上的一個(gè)重要事件,Eclipse開(kāi)始步入成熟階段。本文借此機會(huì )介紹在Eclipse中使用版本控制系統CVS的一些經(jīng)驗和技巧。首先介紹為什么Eclipse要使用CVS來(lái)作為自己的版本控制系統而放棄了有著(zhù)很好口碑的Visual Age Java的ENVY,然后簡(jiǎn)要講述CVS系統的背景及NT平臺下CVS服務(wù)器的安裝和設置。接下來(lái),針對Eclipse,詳細講解了使用CVS進(jìn)行團隊開(kāi)發(fā)時(shí)的開(kāi)發(fā)流程以及在Eclipse中具體使用的重要操作方法。

背景

在Visual Age Java之后,IBM推出了新一代的開(kāi)放源碼軟件開(kāi)發(fā)平臺Eclipse,在此基礎上打造其核心產(chǎn)品WebSphere家族。而對于大部分個(gè)人開(kāi)發(fā)者而言,Eclipse作為一個(gè)嶄新的Java集成開(kāi)發(fā)環(huán)境提供了一個(gè)非常具有吸引力的選擇,已經(jīng)得到了越來(lái)越多開(kāi)發(fā)者的關(guān)注和喜愛(ài)。

項目的版本控制對于團隊開(kāi)發(fā)是極端重要的,對于個(gè)人開(kāi)發(fā)者也是項目復雜化時(shí)不可缺少的工具。

在Visual Age Java中,由于Visual Age Java特有的項目數據存儲方式――所有的相關(guān)文件都存在一個(gè)二進(jìn)制文件中,可以做到直接內置的版本控制,這一系統也就是著(zhù)名的ENVY,它在Visual Age Java的使用者中有著(zhù)非常好的口碑。

而在Eclipse中,情況有了變化。ENVY把項目數據存儲在二進(jìn)制文件中,也即所謂基于Repository的存儲,而幾乎所有其他集成開(kāi)發(fā)環(huán)境的項目數據存儲方式都是基于文件的,項目的所有相關(guān)文件直接作為物理文件存儲在硬盤(pán)上。兩種方式各有利弊,有許多剛接觸Visual Age Java的用戶(hù)很不習慣ENVY,認為看不見(jiàn)文件使得自己失去了直接感,反過(guò)來(lái)也有Visual Age Java的忠實(shí)用戶(hù)極力支持和贊揚ENVY。(不過(guò)作者認為,在Visual Age Java中開(kāi)發(fā)者至少可以幾乎完全不用花心思在文件路徑問(wèn)題上,這個(gè)問(wèn)題一般總是會(huì )耗費新手甚至老手的大量時(shí)間和精力。)在Eclipse中最終使用了基于文件的存儲方式,這樣增強了透明性和互操作性,但是要達到Visual Age Java以前做到的項目管理和源代碼控制就必須采用不同的方式。

Eclipse的內置版本支持

Eclipse本身內置了一定程度的版本支持,也就是所謂的Local History。在Eclipse中編輯的文件每次存盤(pán)都會(huì )留下記錄,可以隨時(shí)與歷史記錄比較,恢復到某一個(gè)時(shí)刻的狀態(tài)。在資源視圖(Resource Perspective)或者Java視圖(Java Perspective)中的文件上點(diǎn)右鍵,選擇Compare With,Local History,就會(huì )得到如下的畫(huà)面,可以很清晰看到各個(gè)版本的區別。


圖1:Eclipse中的內置版本支持:Local History。

如果需要,則可以通過(guò)Replace With,Local History來(lái)恢復到任一個(gè)以前的版本。當然,這樣版本的歷史是有限制的,可以在Eclipse的Preference中設置。在Preference―>Workbench->Local History中,可以設置保持最多保持幾天的文件,每一文件的版本數目,歷史文件的大小限制。

但是,這樣的版本系統只實(shí)現了最基本的版本功能,如果想把文件某一個(gè)狀態(tài)標記為一個(gè)版本,加上注釋?zhuān)▋H僅從Local History中的保存時(shí)間很難看出每一個(gè)版本的特點(diǎn),也難以找到重要的關(guān)鍵版本),或者想把某個(gè)目錄乃至整個(gè)項目版本化,Eclipse內置的Local History都是無(wú)能為力的。

好在Eclipse基于開(kāi)放的思想,采用了業(yè)界標準的版本控制系統CVS,這樣不僅很好地實(shí)現了版本控制的功能,對于已經(jīng)熟悉CVS的開(kāi)發(fā)者來(lái)說(shuō)也更容易使用,更重要的是,可以為團隊開(kāi)發(fā)提供更加靈活和開(kāi)放的選擇:項目的數據可以存儲在一個(gè)CVS服務(wù)器內,不同的開(kāi)發(fā)者甚至可以采用不同的開(kāi)發(fā)工具,只要這些工具都支持CVS。也許這時(shí)我們可以理解為什么Eclipse放棄了Visual Age Java的業(yè)已很成功的ENVY系統,這一點(diǎn)很好地體現了Eclipse的開(kāi)放性和對其他軟件的良好互操作性。

CVS

CVS是Concurrent Versions System(并發(fā)版本系統)的縮寫(xiě),基于Unix體系中成熟的SCCS(Source Code Control System)和RCS(Revision Control System)開(kāi)發(fā),是一個(gè)開(kāi)放源碼的項目,目前已是版本控制系統的主流軟件。一個(gè)很常見(jiàn)的使用CVS的場(chǎng)合,就是開(kāi)放源碼項目。由于開(kāi)放源碼項目的開(kāi)發(fā)者的分布性,對于版本管理的要求更加嚴格,而目前大部分的開(kāi)放源碼項目幾乎都是采用CVS來(lái)管理源代碼,CVS的標準性和強大可見(jiàn)一斑。

CVS采用客戶(hù)機/服務(wù)器體系,代碼以及各種版本存儲在中心服務(wù)器內,每一個(gè)個(gè)體開(kāi)發(fā)者開(kāi)發(fā)時(shí)都首先從服務(wù)器上獲得一份自己的拷貝,在此基礎上進(jìn)行開(kāi)發(fā),以避免直接影響服務(wù)器上的數據。開(kāi)發(fā)者可以隨時(shí)把自己的新代碼提交給服務(wù)器,并通過(guò)更新獲得代碼的最新?tīng)顟B(tài),保持與其他開(kāi)發(fā)者的一致。

CVS對于網(wǎng)絡(luò )是透明的,開(kāi)發(fā)者可以使用客戶(hù)端軟件(幾乎所有的平臺上都有相應的客戶(hù)端軟件)在任何時(shí)候,任何地點(diǎn)通過(guò)網(wǎng)絡(luò )來(lái)獲取最新的代碼。

對于Eclipse的開(kāi)發(fā)者而言,Eclipse本身內置了CVS支持,不需要使用其他客戶(hù)端軟件,只要建立一個(gè)CVS服務(wù)器,就可以使用這一強大的版本控制系統了。

CVS起源于Unix/Linux平臺,關(guān)于Unix/Linux平臺下的安裝使用的介紹文章很多,這里就不再重復,讀者如果需要在Unix/Linux平臺下建立CVS服務(wù)器,可以參考本文附錄的相關(guān)資源。

在Windows平臺上也有CVS的一個(gè)實(shí)現――CVSNT,CVSNT的安裝有一定困難,這里我們做一個(gè)簡(jiǎn)單介紹。 CVSNT的安裝

首先到CVSNT的主頁(yè)http://www.cvsnt.org下載最新版本,目前是CVSNT 1.11.1.3 (Build 57f)。

CVSNT的安裝有一些注意事項,請讀者盡量按照下面所說(shuō)的步驟來(lái)進(jìn)行安裝,描述主要針對Windows 2000。如果讀者在安裝過(guò)程中還有問(wèn)題,可以參考本文附錄的資源中關(guān)于CVSNT的安裝技巧的文章或郵件列表。

  1. CVSNT可以安裝在Windows NT4 服務(wù)器或工作站SP6, Windows 2000服務(wù)器或專(zhuān)業(yè)版,Windows XP專(zhuān)業(yè)版上。
  2. 以管理員賬號登陸,首先修改環(huán)境變量。直接執行安裝程序,很有可能在最后會(huì )出現無(wú)法創(chuàng )建路徑變量的錯誤,為此我們首先修改環(huán)境變量,設定路徑。假設我們要把CVSNT安裝到D:appcvsnt目錄下(與CVSNT相關(guān)的內容最好安裝到NTFS分區上,也盡量不要使用含有空格的目錄名或者文件名,雖然CVSNT已經(jīng)盡量支持包含空格的目錄名和文件名,但仍有可能出現問(wèn)題),那么打開(kāi)控制面板,系統屬性,高級,環(huán)境變量,系統變量中的Path,添加上D:appcvsnt并保存設置。
  3. 接下來(lái)可以執行安裝程序,修改安裝目錄,一步步完成安裝。
  4. 從開(kāi)始菜單的程序組中啟動(dòng)CVSNT配置程序Configure Server。這時(shí)應該看到服務(wù)器還沒(méi)有運行(CVSNT作為系統服務(wù)運行),如果已經(jīng)運行了,先把它停下來(lái)。
  5. 選擇第二個(gè)選項卡Repositories,首先勾上Repositories prefix(數據庫路徑前綴)的選項。CVSNT中只有一個(gè)數據庫路徑前綴,在這同一個(gè)前綴下,可以有多個(gè)數據庫。相應的,所有的數據庫都位于數據庫路徑前綴對應的目錄之下。這里我們假設數據庫都存儲在E:workcvsrepo下,點(diǎn)擊省略號按鈕來(lái)選擇E:workcvsrepo作為數據庫路徑前綴。
  6. 點(diǎn)擊下面的Add按鈕添加數據庫根,可以有多個(gè)。比如我們將/work作為我們的工作項目的存儲根。注意添加時(shí)系統自動(dòng)把已設定的E:workcvsrepo作為了路徑前綴。
  7. 選擇第三個(gè)選項卡Advanced,勾上全部選項,包括Use local users instead of domain。設置臨時(shí)目錄,假設為E:workcvstemp。注意要保證臨時(shí)目錄的安全設置(右鍵點(diǎn)擊目錄屬性,共享,權限)給所有賬號以完全控制權限,包括SYSTEM賬號。并且,絕對不能把臨時(shí)目錄設在諸如C:WINNTTEMP或者C:Documents and Settings下的任何地方,因為這些地方對于用戶(hù)的訪(fǎng)問(wèn)是有限制的。
  8. 點(diǎn)擊應用以保存設置,這一點(diǎn)相當重要。
  9. 現在可以回到第一個(gè)選項卡,點(diǎn)擊Start按鈕,服務(wù)應該正常啟動(dòng)運行了。如果有問(wèn)題,可以打開(kāi)一個(gè)命令行窗口,輸入path命令來(lái)檢查路徑是否已經(jīng)設置正確,也許需要重新啟動(dòng)來(lái)使設置生效。
  10. 打開(kāi)一個(gè)命令行窗口,輸入如下命令,用你的實(shí)際計算機名和用戶(hù)名替代尖括號內的內容,注意對于NT Server,不能用localhost作為計算機名,必須使用實(shí)際計算機名:
    set cvsroot=:ntserver:<計算機名>:/work
    這一命令通過(guò)設定cvsroot這一環(huán)境變量,設定/work為目前的cvs數據庫根。這里使用ntserver模式,這一模式比較適合服務(wù)器就在本地的情形。它要求局域網(wǎng)或者域內所有機器的用戶(hù)賬號相同,客戶(hù)端使用Windows NT,Windows 2000或者Windows XP。pserver模式是缺省的,除非關(guān)掉2401端口,下面我們的Eclipse就是使用pserver模式。
    cvs passwd -a <你的NT用戶(hù)名>
    這一命令設定CVS中的用戶(hù)名和密碼,輸入后將提示你輸入密碼。
    注意如果需要CVS 服務(wù)器同時(shí)以ntserver和pserver模式運行,那么密碼最好不要和系統中用戶(hù)的真實(shí)密碼相同以保證安全。
    這里的用戶(hù)必須是服務(wù)器上的真實(shí)用戶(hù),不過(guò)可以給真實(shí)用戶(hù)設定一個(gè)不同的使用名alias。使用命令:
    cvs passwd -a -r <你的NT用戶(hù)名>
    必須注意,這些名字里最好不要使用任何空格。如果必須的話(huà),可以用雙引號括起來(lái)。
  11. 到此為止,CVS服務(wù)器已經(jīng)初步設置完成,可以使用了。缺省情況下,服務(wù)器將作為NT服務(wù)自動(dòng)運行。讀者既可以使用命令行的CVS命令,也可以使用各種CVS客戶(hù)端來(lái)連接CVS服務(wù)器,執行CVS操作。不過(guò),下面我們主要介紹在Eclipse中通過(guò)內置的CVS支持來(lái)使用CVS系統。

在Eclipse中使用CVS系統

前面已經(jīng)提到,CVS的數據存放在服務(wù)器的數據庫中。為了支持Concurrent這一并發(fā)特點(diǎn),CVS使用了一個(gè)分枝(Branch)模型,以保證不同開(kāi)發(fā)者的相對獨立,但是又高度集成。分枝可以看成一個(gè)開(kāi)發(fā)團隊共享的工作區(Workspace),在CVS數據庫中,有一個(gè)特殊的分枝稱(chēng)為HEAD,代表主要工作流。

開(kāi)發(fā)者可以提交(Commit)自己的工作,并通過(guò)更新(Update)與其他人的最新修改保持同步。提交是把自己的修改提交給數據庫,稱(chēng)為輸出(Outgoing),更新則是得到其他人的修改,稱(chēng)為輸入(Incoming)。每次提交之前,都應該先更新,以保持與最新?tīng)顟B(tài)同步。

因此,在Eclipse中使用CVS進(jìn)行團隊開(kāi)發(fā),理想的開(kāi)發(fā)流程應該是這樣的(具體操作方法隨后介紹):


圖2:團隊開(kāi)發(fā)流程

  1. 從最新?tīng)顟B(tài)開(kāi)始。開(kāi)始工作前,要保證所有資源與最新的分枝狀態(tài)一致。對于從頭開(kāi)始的新項目,首先要連接服務(wù)器,設定存儲那些資源文件。對于在服務(wù)器數據庫中已經(jīng)有記錄的項目,首先要通過(guò)更新來(lái)保證資源狀態(tài)最新。如果本地的工作沒(méi)有需要特別保存的,可以直接把數據庫中的最新版本Check Out As Project,或者Replace With,Latest from Repository。
  2. 進(jìn)行本地工作,保存修改。
  3. 同步。當做好提交工作的準備后,要和服務(wù)器數據庫同步。
    1. 首先應該更新(Update),檢查所有的Incoming改變,輸入到本地,看是否會(huì )影響自己的工作,是否會(huì )造成沖突,破壞完整性等等。
    2. 檢查完更新后,可以確認自己的工作和最新的Branch內容是一致的,就可以提交(Commit)自己的修改了,標上適當的注釋。

下面介紹這一開(kāi)發(fā)流程所用到的主要操作。

對于一個(gè)新的項目而言,首先需要做的就是設置Eclipse來(lái)連接CVS服務(wù)器。首次連接將與服務(wù)器同步(Synchronize)。

首先在Eclipse的資源視圖(Resource Perspective)或者Java視圖(Java Perspective)中的項目上點(diǎn)右鍵,選擇Team,Share Project,將出現提示窗口,選擇是使用已知的CVS數據庫位置還是新建數據庫位置。對于第一次連接CVS服務(wù)器的情況,將需要首先定義連接所需的服務(wù)器參數和路徑,用戶(hù)名,密碼等等。這些參數將得到保存,以后如果需要重新連接,就可以直接使用已知的CVS數據庫設置。

這里我們選擇新建一個(gè)數據庫位置,進(jìn)入下一個(gè)輸入畫(huà)面。

這里的主機名(Host)可以輸入localhost(在Windows NT 4下不可以這樣輸入),因為我們的CVS服務(wù)器就在本機上。

接下來(lái)輸入/work,設定我們的項目數據存放在這一數據庫根路徑下。

然后輸入用戶(hù)名和密碼。

連接類(lèi)型選擇pserver,端口是缺省的不用改動(dòng)。當然,如果你修改過(guò)CVS服務(wù)器使用的端口,這里就要保持一致。


圖3:在Eclipse中設置使用CVS系統

接下來(lái)可以直接點(diǎn)擊Finish完成設置。如果點(diǎn)擊下一步,可以繼續定義在CVS中是否使用與項目名不同的名字作為模塊名,缺省是使用相同的名字。

現在我們完成了項目與CVS服務(wù)器的連接,項目已經(jīng)和CVS服務(wù)器同步了。

但是這并不意味著(zhù)CVS已經(jīng)開(kāi)始記錄版本信息。因為在一個(gè)項目中可能有相當一部分資源文件不適合存儲到數據庫中記錄版本信息,比如編輯器生成的臨時(shí)文件,編譯生成的.class文件,或者某些編譯過(guò)程生成的二進(jìn)制文件等等。因此,Eclipse并不自動(dòng)把所有文件存儲到數據庫中,需要開(kāi)發(fā)者手工指定把那些文件存儲到數據庫中,也就是加入版本控制add to version control。對于單個(gè)文件的指定,可以隨時(shí)在資源視圖(Resource Perspective)或者Java視圖(Java Perspective)中的文件上使用右鍵,選擇Team,Add to Version Control。如果需要存儲整個(gè)項目或者同時(shí)指定多個(gè)文件,則要使用同步(Synchronize)視圖。

注意項目與CVS服務(wù)器連接完成并同步后,在Eclipse右下角的Tasks和Console的位置新出現了一個(gè)Synchronize窗口,下方狀態(tài)欄也顯示了這次同步的狀態(tài)信息。雙擊Synchronize窗口的標題欄使之最大化,我們可以看到窗口上半部分列出了所有尚未指定加入數據庫的資源和文件。在這里我們可以同時(shí)選擇多個(gè)文件,甚至選擇整個(gè)項目,使用右鍵,選擇Team,Add to Version Control,就可以把多個(gè)文件或者整個(gè)項目加入到數據庫中,開(kāi)始記錄其版本信息。

我們可以看到,這時(shí)的同步視圖上標明了處于Outgoing模式。同步(Synchronize)視圖有Incoming模式和Outgoing模式,對應于提交(Commit)和更新(Update)操作,表示目前修改是來(lái)自本地還是來(lái)自服務(wù)器。當然,視圖也可以同時(shí)顯示Incoming和Outgoing方向的變化。當有變化時(shí),在下半部分的比較窗口可以顯示不同版本之間的差異和變化。進(jìn)一步地,可以通過(guò)工具條上的合并(Merge)操作來(lái)消除對同一文件不同修改所帶來(lái)的沖突。

在此之后,當完成對文件或者項目的修改,需要確認修改,把最新的狀態(tài)存儲到數據庫中去,就需要執行提交(commit)操作。類(lèi)似的,我們可以在資源視圖(Resource Perspective)或者Java視圖(Java Perspective)中的文件上使用右鍵,選擇Team,Commit;或者在同步(Synchronize)視圖中同時(shí)提交多個(gè)文件乃至整個(gè)項目。注意,每次提交時(shí)都會(huì )提示輸入注釋?zhuān)@是很重要的,作為每一個(gè)狀態(tài)的說(shuō)明和提示。

當我們需要把文件或者項目的不同版本進(jìn)行比較或者替換時(shí),可以在資源視圖(Resource Perspective)或者Java視圖(Java Perspective)中的文件上使用右鍵,選擇Team,Compare With或者Team,Replace With來(lái)完成。進(jìn)行比較時(shí)將打開(kāi)一個(gè)比較編輯器,很好地表示不同版本之間的差異,和Local History類(lèi)似。

如果要了解CVS數據庫的內容情況,可以使用CVS數據庫瀏覽視圖(CVS Repository Exploring Perspective)。我們可以點(diǎn)擊Eclipse左上角的開(kāi)啟視圖(Open Perspective)按鈕,增加這一視圖到左邊的視圖瀏覽欄里。前面已經(jīng)提到,HEAD代表CVS數據庫里的主流內容。展開(kāi)Versions,可以看到以往的版本。另外,在右下角有數據庫的歷史記錄標明每次修改的相關(guān)信息。

如果需要導出某一版本,就要用到Check Out操作。在某一版本上右鍵選擇Check Out As Project,這將把這一版本導出為同名的項目,從而可以覆蓋已有的狀態(tài),或者選擇Check Out對話(huà)框來(lái)導出為其他項目。


圖4:CVS數據庫瀏覽視圖

關(guān)于更詳細的CVS使用方法和技巧,可以參考Eclipse的幫助中相關(guān)內容。

關(guān)于作者:

董向輝,1998年畢業(yè)于清華大學(xué),隨后進(jìn)入中科院自動(dòng)化所人工智能實(shí)驗室直接攻博??蒲信d趣主要在演化計算和系統復雜性問(wèn)題,技術(shù)方面,從接觸Java開(kāi)始,便一直保持著(zhù)對Java的興趣并作為主要編程語(yǔ)言。同時(shí)注意關(guān)心新出現的有前景的相關(guān)技術(shù),聚焦點(diǎn)先后包括軟件工程,XML,J2ME等等。電子郵件地址:xianghui.dong@mail.ia.ac.cn。

相關(guān)資源:

關(guān)于CVS:
http://www.cvshome.org,CVS官方網(wǎng)站,可以從這里下載最新版本的CVS(Unix/Linux平臺版本)以及相關(guān)的文檔和資料,例如Per Cederqvist的Version Management with CVS 這本官方手冊。
http://laser.zhengmai.com.cn/cvstutorials.html,一個(gè)中文的CVS簡(jiǎn)單教程。
http://www.cvsnt.org,CVSNT,在Windows NT上的CVS服務(wù)器,在此基礎上也有返回Unix/Linux平臺的版本。目前最新版本是CVSNT 1.11.1.3 (Build 57f)。
http://www.cvsnt.org/mailman/listinfo/cvsnt,關(guān)于CVSNT的使用問(wèn)題的郵件列表。
http://w1.858.telia.com/~u85831169/InstallCVSNT.html,關(guān)于CVSNT安裝的一些技巧和知識,感謝作者慷慨的準許,本文參考了其中部分內容。
http://devguy.com/cvsnt,另一個(gè)CVSNT安裝問(wèn)題的幫助和常見(jiàn)問(wèn)題回答。
http://www.cvsgui.org,Windows平臺下的圖形化CVS客戶(hù)端軟件。

關(guān)于Eclipse:
http://www.eclipse.org,Eclipse官方網(wǎng)站,可以從這里下載最新版本2.0。
http://www-900.ibm.com/developerWorks/cn/java/l-ide/part2/index.shtml,VAJ之后是什么?,介紹從Visual Age Java到Eclipse,WSWB等等的來(lái)龍去脈以及各自的特點(diǎn)。
http://dev.eclipse.org/viewcvs/index.cgi/~checkout~/platform-vcm-home/docs/online/cvs_features2.0/cvs-faq.html,在Eclipse中使用CVS的常見(jiàn)問(wèn)題回答。更詳細的具體操作介紹,可以參考Eclipse軟件所附帶的幫助。


http://www-900.ibm.com/developerWorks/cn/java/l-cvs/index.shtml

 

 

 

安裝和使用CVS
日期:2005年6月22日 作者:非常下載 人氣:

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

Cvs服務(wù)器安裝

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

一 創(chuàng )建CVS屬主用戶(hù):
# useradd -d /cvsroot cvs
# chmod 771 /cv sroot

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

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

四、啟動(dòng)cvs服務(wù)器

在/etc/xinetd.d/目錄下創(chuàng )建文件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是用來(lái)限制訪(fǎng)問(wèn)的,可以根據實(shí)際情況不要或者修改。
修改該文件權限:
# chmod 644 cvspserver
然后重新啟動(dòng)xinetd:
# /etc/rc.d/init.d/xined restart
然后察看cvs服務(wù)器是否已經(jīng)運行:
[root@mail xinetd.d]# netstat -lnp|grep 2401
tcp 0 0 0.0.0.0:2401 0.0.0.0:* LISTEN 7866/xinetd
則說(shuō)明cvs服務(wù)器已經(jīng)運行。

五、創(chuàng )建用來(lái)訪(fǎng)問(wèn)cvs的用戶(hù)

前面創(chuàng )建的cvs用戶(hù)是cvs倉庫管理用戶(hù),而為了讓用戶(hù)訪(fǎng)問(wèn)則還需要一個(gè)訪(fǎng)問(wèn)用戶(hù):
# useradd cvspub
# usemod -G cvs cvspub
這里添加了一個(gè)用戶(hù)cvspub,并且將該用戶(hù)添加到cvs組中。

六、管理cvs服務(wù)器

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

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

七、建立新的CVS項目

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

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

CVS NT服務(wù)器安裝指南
下載地址:http://www.cvsnt.org
運行 cvsnt_1.11.1.2.exe
點(diǎn)兩次“Next”跳過(guò)“Welcome”界面開(kāi)始安裝
點(diǎn)“Yes”接受License
點(diǎn)“Next”用默認的Typical安裝
選“Yes”并點(diǎn)“Finish”,重新啟動(dòng)

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

進(jìn)入控制面板,雙擊“CVS for NT”
點(diǎn)“Install”安裝CVSNT服務(wù)
Install按鈕會(huì )變無(wú)效,Uninstall變有效
點(diǎn)“Add”,輸入“d:cvsroot”,點(diǎn)“OK”
會(huì )提問(wèn)是否創(chuàng )建目錄,回答“是”
點(diǎn)“Start”啟動(dòng)CVSNT服務(wù)

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

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

加3個(gè)windows用戶(hù)
user1密碼同上面設的
user2密碼同上面設的
user3密碼同上面設的


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

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

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

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

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

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
Eclipse中版本控制系統CVS的使用
CVS團隊開(kāi)發(fā):Window2003版
CVSNT的安裝與配置
Eclipse快速上手指南 (3)
圖解Eclipse下CVS的配置
Eclipse團隊CVS簡(jiǎn)明教程(1)
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久