bbs cvs常用操作

 #export CVSROOT=:pserver:[email protected]:/cvs
#cvs login

#1、導出整個項目到本地
cvs -z9 co tjubbs

#2、導出不包含cvs目錄的項目代碼
cvs export -r release_version project_name                  //導出標籤(-r)爲release_version的源碼
cvs export -D 20120703 project_name                         //導出不遲於(-D)日期更新的項目源碼
cvs export -D now project_name                                 //導出不遲於今日更新的代碼

#3、更新cvs代碼
cvs -n update -dP                                                   //這將爲你顯示將被修改的東西,而實際上並未修改
cvs update –dP                                                      //執行實際的更新

常用:
cvs ci -m "簡單說明" filename   —— 提交,簡單說明.
cvs up filename/dirname           —— 更新本地文件到最新版本

經過測試確定目前服務器的cvs的根目錄是:/home/cvs,可以從中遷出兩個模塊test和tjubbs。
練習:
1、創建新的項目,添加到cvs管理;
cvs import -m "log msg" projectname vendortag releasetag

2、從cvs版本庫中刪除文件
(1)在本地刪除文件;(2)cvs remove;(3)cvs ci -m ""
3、爲發行版添加 tag
(1) 爲一個文件添加tag
cvs tag rel-1-0 test.c
(2)爲目錄下所有文件添加tag
cvs tag rel-1-0 .(當前目錄)

4、爲項目文件添加標記,如在cvstest中運行
cvs tag rel-1-0
所有文件,不論當前版本號是否一樣,均被標記爲rel-1-0

5、創建新分支,從標記爲rel-1-0的主幹代碼創建新分支,這樣即使主幹代碼在合併時發生了問題,可以恢復到這個tag上
cvs rtag -b rel-1-0 rel-1-0-patches cvstest

6、進入到新分支的方法包括
(1)從服務器check一份新的帶tag的代碼
cvs checkout -r rel-1-0-patches cvstest
(2)將主幹代碼update成新的分支代碼,更新時指定標記
cvs update -r rel-1-0-patches cvstest

注意:使用cvs status -v 查看文件的狀態,
文件的revision可能不一樣,但是隻要分支標籤一樣,說明處於同一分支之中

7、合併一整個分支
(1)修改check下來的分支代碼(自己創建的目錄cvstest_branch中)1.c,然後提交該代碼:
cvs ci -m "test" 1.c
提示信息:new version:1.2.2.1; previous revision:1.2
說明在分支上修改的代碼被提交到服務器的庫的分支上了

(2)將服務器上分支代碼變更合併到本地的主幹代碼工作副本(自己創建的目錄cvstest)之中,執行,其中j是join的意思,將分支中的代碼join過來:
cvs update -j rel-1-0-patches 1.c
提示信息:Merging differences between 1.2 and 1.2.2.1 into 1.c
查看主幹代碼工作副本1.c,能夠看到分支代碼中的修改。

(3)現在是在本地主幹代碼工作副本中將新分支的修改merge過來了,但是並沒有提交到服務器的主幹代碼,因此需要將當前的merge提交到服務器的庫:
cvs ci -m "including rel-1-0-patches" 1.c
提示信息:new revision:1.3;previous revision:1.2,根據上面記錄的信息,原主幹代碼中1.c的revision爲:1.2,提交後版本升級到1.3了。

 
8、從一個分支多次合併到主幹
(1)如果一直使用:cvs update -j rel-1-0-patches 1.c的話,可能會出現意想不到的後果,cvs提供了只把未被合併分支的改變合併進主幹,這時使用兩個 -j 參數,將從第一個版本到第二個版本的變化合並進主幹中。如,我修改了cvstest_branch(分支rel-1-0-patches)下的1.c,提交服務器庫,版本從1.2.2.2變成最新的1.2.2.3版,本地主幹代碼工作副本,1.2.2.2已經被合併過了,因此只需要將從1.2.2.2到最新版的變化合並過來就可以了,使用如下命令:

cvs update -j 1.2.2.2 -j rel-1-0-patches 1.c

提示主幹的1.c版本從1.3升級至1.4。

(2)使用此方法需要制定版本號,也可以最後完成合並的日期來區分版本:
cvs update -j rel-1-0-patches:yesterday -j rel-1-0-patches 1.c
即將昨天最後完成合併到最新的變化合並進主幹代碼

(3)同樣可以再每次合併進主幹後加一個標籤給rel-1-0-patches分支,可以使用該分支作爲合併的版本
cvs update -j merged_from_rel-1-0-patches-to-trunk -j rel-1-0-patches 1.c


9、合併任何兩個版本的差異

(1)把任意兩個不同的版本的差異合併進工作副本,如下將1.4版本恢復到1.3版本:
cvs update -j 1.4 -j 1.3 1.c
       如果要在多文件之間完成版本的合併操作,則要區分每個文件的不同版本的號,因此轉而使用符號標籤來標記版本。

(2)兩個-j操作同樣能恢復增加或刪除的文件,如2.c是1.1版本的,刪除後變成了一個dead版本1.2,因此可以通過將1.2版本恢復至1.1來恢復文件。
cvs update -j 1.2 -j 1.1 2.c


10、合並可以添加或刪除文件
如果文件中包含關鍵字的解決方法,見鏈接:


求實BBS服務器CVS操作實錄:
1、可以爲tjubbs單獨的文件夾創建分支(因爲主要修改在nju09和src上,可以先測試nju09創建分支的效果),首先爲nju09的所有代碼打上穩定版本標籤:stable-1-0(如果以後從分支往主幹上合併時出現了問題的話,可以直接使用stable-1-0版本來生成程序)
cvs tag nju09-stable-1-0 .

2、基於nju09的穩定版本nju09-stable-1-0創建新分支,nju09--branch-1-0
cvs rtag -b nju09-branch-1-0 tjubbs/nju09

3、將主幹代碼切換到分支代碼,在nju09目錄中
cvs update -r nju09-branch-1-0

4、常用輔助操作:
切換回主幹代碼:cvs up -P -A
刪除標記:cvs tag -d nju09-stable-1-0 tjubbs,將tjubss的nju09-stable-1-0標記刪除
刪除分支:cvs rtag -d -B nju09-stable-1-0 tjubbs

5、本機將主幹代碼更新至分支版本nju09-branch-1-0
進入nju09目錄下:cvs update -j nju09-branch-1-0


發佈了60 篇原創文章 · 獲贊 4 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章