CVS系統簡介
一、什么是CVS?CVS ――Concurrent Versions System并行版本系統; 是一個標準的版本控制系統; 對代碼進行集中管理; 記錄代碼所有的更改歷史; 提供協作開發的功能; 支持多人同時CheckOut與合并。 以客戶端/服務器模式工作,所有的用戶都在客戶端進行CVS操作,而所有命令的執行都在CVS服務器端進行。 二、CVS基本概念CVS倉庫:又稱主拷貝,是CVS系統保存軟件資源的地方。所有項目的所有文件的所有版本都保存在這個倉庫中。 版本:開發人員每次向CVS提交所做的修改就形成了一個新版本。 工作拷貝:從CVS服務器端取出的,保存在我們正在使用的客戶端計算機上的代碼拷貝。每個人員都有一個屬于自己的工作拷貝。 檢出代碼(創建工作拷貝check out):從服務器取出代碼,就是創建工作拷貝的過程。 提交代碼(commit):將代碼送到服務器保存,commit又叫作check in。 導入代碼(import):將未被CVS進行版本管理的代碼引入CVS系統中,由CVS開始對它進行版本管理。 CVS日志:CVS用來記錄每次操作的內容的信息。日志信息可以用cvs log命令來查看。 更新(update):在協同開發環境下,將其他人所作的最新修改從CVS倉庫中取到你的工作拷貝中,從而使得你得工作拷貝與倉庫中得最新版本保持一致。使用update是同步各個工作拷貝的手段。 沖突(conflict):在協同開發的環境下,當兩個開發人員對同一個文件進行修改,并且依次提交CVS倉庫時就發生了沖突。這種沖突需要開發人員手工消除,并提交到CVS倉庫中形成解除沖突之后的新版本。
三、CVS命令:1. 設置環境變量。 set CVSROOT=:pserver:xxx@192.168.0.226:e:/cvsroot set CVSROOT=:pserver:xxx@ansi.3322.org:e:/cvsroot 2.簽出工作版本到工作目錄。 $cd $cvs co account/src/common 該命令只將account/src/common目錄結構簽出到本地。若使用 $cvs co account 則將account下所有目錄結構簽出來。 3. 提交修改的文件到CVS版本庫中: $cvs ci filename> 注意若提交多個文件可以輸入多個文件名,并以空格分開。若將該目錄下所有文件都提交,那么只需 $cvs ci 回車> 即可。 4. 提交新增加的目錄或文件到CVS版本庫中: $cvs add dirname> $cvs ci dirname> $cvs add filename> $cvs ci filename> 5. 刪除目錄及文件,需先刪除目錄下的文件 $rm filename> $cvs remove filename> $cvs ci filename> 再執行 $cd .. $cvs up –P 則將該空目錄刪除(只是刪除本地工作拷貝的空目錄)。 6. 查看文件狀態 $cvs status filename> 例如: $ cvs st ffun.c ================================================================= File: ffun.c Status: Up-to-date Working revision: 1.1 Wed Nov 6 11:29:04 2002 Repository revision: 1.1 /szunicom/dev/billing/src/preproc/CDMA/ffun.c,v Sticky Tag: (none) Sticky Date: (none) Sticky Options: (none) 注意:最重要的是Status欄,可以有以下幾種狀態: Up-to-date :表明你的工作拷貝是最新的. Locally Modified:表明你曾經修改過該文件,但還沒有提交,你的版本比倉庫里的新. Needing Patch:表明有人已經修改過該文件并且已經提交了!你沒有修改但你的工作拷貝的版本比倉庫里的舊. Needs Merge:表明你修改了該文件但沒有提交,而有人也修改了這個文件,并且提交給倉庫了。 Locally added :表明使用了add命令增加了該文件,但還沒有commit Locally Removed :表明你使用了remove命令,但還沒有commit Unkown :CVS不知道關于這個文件的情況.例如,你創建了一個新文件,而沒有使用add命令 解決辦法: 若狀態為Locally Modified,則需執行$cvs ci filename> 若狀態為Needing Patch或Needing Merge,則需執行$cvs up filename> 將版本庫里的文件與工作拷貝合并后,再提交給版本庫,使用命令: $cvs ci filename> 。 若狀態為:Locallyadded,則需執行$cvs ci filename> 若狀態為:Removed,則需執行$cvs ci filename> 若狀態為:Unkown,則需執行$cvs add filename>,$cvs ci filename>。 7. 查看工作拷貝和倉庫中最后版本之間的修改 $ cvs diff src.c 8. 查看指定的兩個版本之間的修改 $ cvs diff -r 1.1 -r 1.2 filename> 9. 版本回退(取出以前的某個版本) 有兩種方式: 一是只把某一版本的文件輸出到標準輸出上: $cvs up –p –r 版本號> filename> “-p”選項讓CVS命令的結果只輸出到標準輸出,而不寫入到結果文件中。 另一種是將輸出到標準輸出的結果重定向到文件中: $cvs up –p –r 版本號> filename> > filename> 如:目前abc.c文件的版本號為1.5,要取出1.2的版本,那么執行 $cvs up –p –r 1.2 abc.c > abc.c 若沒有使用“-p”選項進行回退,而是使用了$cvs up –r 1.2 abc.c命令,之后若對1.2版本進行修改后再提交到CVS時,會出現如下提示信息: cvs ci cvs commit: Examining . cvs commit: sticky tag `1.2" for file `abc.c" is not a branch cvs [commit aborted]: correct above errors first! 解決辦法兩種方式: 1 、修改CVS/Entries文件,將以下黃色標記部分刪除即可。 $cd CVS $ vi E* /abc.c/1.2/Tue Dec 17 13:33:06 2002//T1.2 D ~ ~ 2、使用$cvs up –A abc.c命令來消除附著標簽,但是該命令是將1.2版本與最新版本進行了合并,還需對abc.c進行修改再重新提交。 10. 如何恢復已經刪除的文件或目錄: 1. 在執行了【Remove】命令之后恢復文件。 ◇ 【Ctrl+L】直接輸入命令cvs add xxxxx,或執行【Add Selection】界面操作。 ◇ 這樣就可以直接恢復還未提交的刪除文件。 2. 在執行了【Commit】命令之后恢復文件。 ◇ 只能用【Ctrl+L】直接輸入命令cvs add xxxxx,這時會得到一個空的文件。 ◇ 選中這個空文件,執行【Update】操作,得到這個文件的實體。 ◇ 再次選中這個文件,執行【Commit】操作,得到這個文件最新版本。 3. 由于CVS系統中本質上不會刪除任何目錄,因此,談不上對目錄的恢復,但是CVS系統默認情況下是要在用戶本機上(如:YCW2000)要刪除空目錄,因此,可以用如下方法得到已被刪除的空目錄:cvs checkout -p xxx,也可以在Admin=>Preference的【Globals】頁面進行設置。
網站首頁 |網站簡介 | 關于我們 | 廣告業務 | 投稿信箱
Copyright © 2000-2020 www.xnbt.net All Rights Reserved.
中國網絡消費網 版權所有 未經書面授權 不得復制或建立鏡像
聯系郵箱:920 891 263@qq.com
主站蜘蛛池模板: 美女奶口隐私免费视频网站| 四虎成人精品免费影院| 国产一级电影在线观看| 果冻传媒李琼母亲| а√天堂资源8在线官网在线| 日本私人影院| 美女黄视频免费| 看片91| 337p色噜噜人体大胆欧美| 欧美超清videos1080p| 日本电影二区| 再深点灬舒服灬太大了np视频| 美女扒开尿囗给男生桶爽| 欧美亚洲国产日韩综合在线播放 | 中文字幕天天躁日日躁狠狠躁免费 | 最近免费中文字幕mv在线电影| 男女猛烈xx00免费视频试看| 久别的草原电视剧免费观看| 国产精品一卡二卡三卡| 久久国产精品免费一区二区三区| 成年女人免费视频| 遭绝伦三个老头侵犯波多野结衣| mm131美女做爽爽爱视频| 亚洲欧美在线精品一区二区| 晚上看b站直播软件| 日韩精品一区二区三区在线观看| 蜜桃成熟时1997在线看免费看| 美女隐私免费视频看| 韩国男女无遮挡高清性视频| 印度精品性hd高清| 国产草草影院| 亚洲一区欧美一区| 色综合视频一区二区三区| 五十路亲子中出中文字幕| 黄网站色视频免费观看| 欧美黑人巨大videos精品| 啊灬啊灬用力灬再用力岳| 十三以下岁女子毛片免费播放| 亚洲精品中文字幕乱码三区| 欧美天堂视频| 一个人看的视频在线|