<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    憨厚生

    ----Java's Slave----
    ***Java's Host***

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      165 隨筆 :: 17 文章 :: 90 評(píng)論 :: 0 Trackbacks

    #

    歷史 
        CVS 誕生于 1986 年,當(dāng)時(shí)作為一組 shell 腳本而出現(xiàn);1989年3月,Brian Berlinor用C語言重新設(shè)計(jì)并編寫了CVS的代碼;1993年前后,Jim Kingdon最終將CVS設(shè)計(jì)成基于網(wǎng)絡(luò)的平臺(tái),開發(fā)者們能從Internet任何地方獲得程序源代碼。截至目前最新版本是2004年12月13日發(fā)布的1.12.11。 

    功能介紹 
    一、 代碼統(tǒng)一管理,保存所有代碼文件更改的歷史記錄。對(duì)代碼進(jìn)行集中統(tǒng)一管理,可以方便查看新增或刪除的文件,能夠跟蹤所有代碼改動(dòng)痕跡??梢噪S意恢復(fù)到以前任意一個(gè)歷史版本。并避免了因?yàn)榘姹静煌氲纳顚覤UG。 
    二、 完善的沖突解決方案,可以方便的解決文件沖突問題,而不需要借助其它的文件比較工具和手工的粘貼復(fù)制。 
    三、 代碼權(quán)限的管理??梢詾椴煌挠脩粼O(shè)置不同的權(quán)限。可以設(shè)置訪問用戶的密碼、只讀、修改等權(quán)限,而且通過CVS ROOT目錄下的腳本,提供了相應(yīng)功能擴(kuò)充的接口,不但可以完成精細(xì)的權(quán)限控制,還能完成更加個(gè)性化的功能。 
    四、 支持方便的版本發(fā)布和分支功能。

    基本概念 
    資源庫(Repository)
     
    CVS的資源庫存儲(chǔ)全部的版本控制下的文件copy,通常不容許直接訪問,只能通過cvs命令,獲得一份本地copy,改動(dòng)后再check in(commit)回資源庫。而資源庫通常為與工作目錄分離的。CVS通過多種方式訪問資源庫。每種方法有不同目錄表示形式。 
    版本(Revision) 
    每一個(gè)文件的各個(gè)版本都不相同,形如1.1, 1.2.1,一般1.1是該文件的第一個(gè)revision,后面的一個(gè)將自動(dòng)增加最右面的一個(gè)整數(shù),比如1.2, 1.3, 1.4...有時(shí)候會(huì)出現(xiàn)1.3.2.2,原因見后。revision總是偶數(shù)個(gè)數(shù)字。一般情況下將revision看作時(shí)CVS自己內(nèi)部的一個(gè)編號(hào),而tag則可以標(biāo)志用戶的特定信息。 
    標(biāo)簽(Tag) 
    用符號(hào)化的表示方法標(biāo)志文件特定revision的信息。通常不需要對(duì)某一個(gè)孤立的文件作tag,而是對(duì)所有文件同時(shí)作一個(gè)tag,以后用戶可以僅向特定tag的文件提交或者checkout。另外一個(gè)作用是在發(fā)布軟件的時(shí)候表示哪些文件及其哪個(gè)版本是可用的;各文件不同revision可以包括在一個(gè)tag中。如果命名一個(gè)已存在的tag默認(rèn)將不會(huì)覆蓋原來的; 
    分支(Branch) 
    當(dāng)用戶修改一個(gè)branch時(shí)不會(huì)對(duì)另外的branch產(chǎn)生任何影響??梢栽谶m當(dāng)?shù)臅r(shí)候通過合并的方法將兩個(gè)版本合起來;branch總是在當(dāng)前revision后面加上一個(gè)偶數(shù)整數(shù)(從2開始,到0結(jié)束),所以branch總是奇數(shù)個(gè)數(shù)字,比如1.2后面branch為1.2.2,該分支下revision可能為1.2.2.1,1.2.2.2,... 
    沖突(Conflct) 
    完全是純文本的沖突,不包含邏輯上的矛盾。一般是一份文件,A做了改動(dòng),B在A提交之前也做了改動(dòng),這樣最后誰commit就會(huì)出現(xiàn)沖突,需要手工解決沖突再提交。 

    CVS與eclipse集成開發(fā) 
      前面對(duì)CVS的歷史、功能、概論等理論知識(shí)做了介紹。下面我們將使用最流行的Java IDE Eclipse中內(nèi)置的CVS工具,以一個(gè)完整開發(fā)流程,介紹實(shí)際環(huán)境中CVS的正確使用。關(guān)于CVS系統(tǒng)的安裝,不是本文的內(nèi)容,您可以從附錄的鏈接中獲取安裝的介紹資料。 

    常用的CVS控制命令 
    Check Out(檢出) 
    把源文件從cvs源代碼倉庫中取出,缺省的版本是最新的版本,你也可以選擇指定的版本。在每次更改源代碼之前,需要Check Out最新的版本,再起基礎(chǔ)之上對(duì)源代碼進(jìn)行修改。將代碼目錄checkout到指定目錄下,所有文件都是read-write。 
    Check In(檢入) 
    把源代碼加入到cvs源代碼倉庫中,每一個(gè)添加進(jìn)代碼庫中的文件的版本是 1.1。以后每次修改文件重新ci以后,此文件的版本遞增為1.2 ,1.3.……。在每次對(duì)源代碼修改之后,需要Check In,提交最新版本的源代碼。 
    Synchronize with Repository(與資源庫同步,簡稱同步) 
    使本地更改與資源庫同步,它會(huì)列出本地和資源庫之間不同的所有文件。 
    Add to Version Control 
    將新的文件加入到版本控制之中。 
    Add to .cvsIgnore 
    將文件設(shè)置到版本控制之外,這樣該文件或目錄中的文件的更改在CVS中不可見,即使同步也無法發(fā)現(xiàn)。

    CVS正確使用步驟 
    一、 同步(Synchronize)
     
    就是將本地更改與服務(wù)器同步,同步之后可以清晰的看到上一撿出(Check Out)版本之后本地、服務(wù)器上的最新改動(dòng)。這是非常有用的,特別是敏捷開發(fā),強(qiáng)調(diào)集體擁有代碼。有了同步功能,你可以全局把握項(xiàng)目的代碼,可以很方便的跟蹤公共模塊代碼的任何改動(dòng)。 
    具體操作:在Eclipse的資源視圖(Resource Perspective)或者Java視圖(Java Perspective)中,選中要同步的目錄,點(diǎn)擊右鍵選擇"Synchronize with Repository",之后它將顯示同步的視圖。如下圖: 

    (圖一、CVS同步視圖) 
    同步之后,它有四種Mode可以選擇,見上圖綠色框框里按鈕。從做到右分別為: 
    Incoming Mode:表示修改是來自服務(wù)器,對(duì)應(yīng)于更新(update)操作。 
    Outgoing Mode:表示修改是來自本地,對(duì)應(yīng)提交(commit)操作。 
    Incoming/ Outgoing Mode:本地和服務(wù)器修改都在該模式(Mode)中顯示。 
    Conflicts Mode:顯示本地和服務(wù)器修改的沖突文件。 
    二、 更新(update) 
    比較簡單,選擇Incoming Mode,再選中要更新的文件,右鍵選擇update操作。 
    三、 解決沖突并合并(solve conflct and merge) 
    如果有沖突文件,沖突文件不能更新。你必須先解決沖突再操作。選中沖突的文件,再點(diǎn)右鍵選擇"Open in Compare Editor",用比較工具打開該文件。如下圖: 

    (圖二、CVS比較器視圖)

    比較器(Compare)視圖,左邊版本底的是本地文件(Local File),右邊是遠(yuǎn)程服務(wù)器文件(Remote File)。使用"Select Next Change"按鈕(綠框中的第一箭頭向下按鈕),逐一查看不同點(diǎn)。如果不同點(diǎn)標(biāo)識(shí)為黑色框框,則不用管它。如果是藍(lán)色框框,則需要手工調(diào)整。如上圖,不同點(diǎn)是藍(lán)色框框,將鼠標(biāo)放到兩個(gè)不同點(diǎn)的中間小方框中,則凸出一個(gè)向右的按鈕,并顯示提示信息"Copy Current Change from Right to Left",意思是將右邊服務(wù)器的不同點(diǎn)覆蓋到左邊的本地文件。點(diǎn)中此按鈕。重復(fù)這樣的操作,將所有服務(wù)器上的更改拷貝到本地。 
    如果有一行代碼,本地和服務(wù)器都同時(shí)做了修改。這時(shí),修改點(diǎn)則顯示紅色框框。這時(shí),你就必須手工做正確的修改。全部修改完成,保存本地文件。 
    此時(shí),如果修改點(diǎn)沒有了藍(lán)色的框框,就可以開始做合并(merge)操作了。操作也很簡單,選擇該文件,點(diǎn)擊右鍵,選擇"Mark as merged"。 
    注意:必須確保沒有藍(lán)色框框,即完全拷貝了服務(wù)器的修改才可以做合并(merge)操作,否則會(huì)覆蓋服務(wù)器上的代碼。 
    四、 提交(commit) 
    更新服務(wù)器代碼,解決沖突之后,首先要查看本地文件修改之后是否有錯(cuò)誤。如果有,當(dāng)然首先解決錯(cuò)誤,再提交。 

    posted @ 2010-03-30 09:48 二胡 閱讀(530) | 評(píng)論 (0)編輯 收藏

    僅列出標(biāo)題
    共165頁: 上一頁 1 2 3 4 5 6 7 8 9 下一頁 Last 
    主站蜘蛛池模板: 黄桃AV无码免费一区二区三区| 久久精品a亚洲国产v高清不卡| 亚洲最大天堂无码精品区| **俄罗斯毛片免费| 亚洲人成综合在线播放| 7x7x7x免费在线观看| 亚洲黑人嫩小videos| 亚洲色偷偷色噜噜狠狠99| 91在线视频免费播放| 亚洲真人无码永久在线观看| 免费鲁丝片一级在线观看| 亚洲私人无码综合久久网| 全免费a级毛片免费看不卡| 苍井空亚洲精品AA片在线播放 | 亚洲va乱码一区二区三区| 国产1000部成人免费视频| 亚洲精品无码久久| 免费A级毛片无码A∨男男| 久久精品免费网站网| 亚洲va在线va天堂va不卡下载| 1000部啪啪毛片免费看| 亚洲中文字幕无码中文| 免费看国产一级特黄aa大片| 国产精品hd免费观看| 亚洲午夜精品一区二区| 91在线视频免费91| 成人福利在线观看免费视频| 亚洲成av人在线视| 九九精品免费视频| 有色视频在线观看免费高清在线直播| 国产亚洲精品xxx| 国产精品1024永久免费视频| 麻豆亚洲AV成人无码久久精品 | 久久久久亚洲AV成人网| 99久久国产精品免费一区二区| 亚洲国产超清无码专区| 亚洲精品tv久久久久| 最近免费中文在线视频| 黄页网站在线观看免费| 色拍自拍亚洲综合图区| 国产午夜鲁丝片AV无码免费|