cvs是什么意思,cvs 命令收集~

 2023-11-09 阅读 23 评论 0

摘要:常用的cvs命令 . 導入一個源代碼庫:源代碼庫在目錄/home/weiqiong/project,其下有文件test.c和test.hshell>cd /home/weiqiong/projectshell>cvs import -m "test project" test(需要導入的項目名) weiqiong(開發商信息) start(版本信息)2. 獲得第
常用的cvs命令

. 導入一個源代碼庫:
源代碼庫在目錄/home/weiqiong/project,其下有文件test.c和test.h
shell>cd /home/weiqiong/project
shell>cvs import -m "test project" test(需要導入的項目名) weiqiong(開發商信息) start(版本信息)

2. 獲得第一份工作copy
shell>cd /home/weiqiong
shell>cvs checkout test
則目錄/home/weiqiong/test中就會有test.c和test.h兩個文件

3. 檢查工作拷貝(-Q為去除無關的提示文字)
shell>cvs -Q update(將cvs上的更新下載到本地)
shell>cvs -Q diff -c(比較cvs上和本地的代碼的不同)
如果希望查看某一特定文件的變化,在最后加上文件名

4. 瀏覽記錄信息
shell>cvs log test.c

5. 查看兩個版本的不同之處:
shell>cvs diff -c -r 1.3 -r 1.4 test.c

6. 恢復舊版本:如果當前最新版本為1.4,而你想將其恢復到1.3版本,重新建立一個新版本1.5
shell>cvs -Q update -p -r 1.3 hello.c > hello.c
(如果沒有-p,表示檢驗出1.3版本,但是會sticky;加上-p,將1.3版本打到標準輸出中,且沒有sticky,此處覆蓋hello.c文件)
shell>cvs update hello.c
(可選,但是一般ci之前都要update一次)
shell>cvs ci -m "reverted to 1.3 code" hello.c
或者
shell>cvs update -j 1.4 -j 1.3 hello.c
(將1.4->1.3的差異,應用到當前版本上)
shell>cvs update hello.c
(可選,但是一般ci之前都要update一次)
shell>cvs ci -m "reverted to 1.3 code" hello.c

如果是目錄
在你需要恢復的目錄下
cvs tag TAG_R1_0_0_2
cvs update -j TAG_R1_0_0_2 -j TAG_R1_0_0_1
cvs update
cvs ci -m "restore to R1_0_0_1"
或者
在你需要恢復的目錄的上一級目錄中
cvs export -d project_name.old -r TAG_R1_0_0_1 project_name
cp -rf project_name.old/* project_name/
rm -rf project_name.old
cvs update
cvs ci -m "restore to R1_0_0_1"

請注意,內容是恢復到了TAG_R1_0_0_1,但是版本一直在增加。

7. 增加文件
vi newfile
cvs add newfile(若為二進制文件則用cvs add -kb readme.doc)
cvs ci -m "add newfile" newfile

8. 刪除文件
rm newfile.c
cvs remove newfile.c
cvs ci -m "removed newfile.c" newfile.c

9. 增加目錄
mkdir newdir
cvs add newdir

10. 要增加帶有多級目錄和文件的子目錄,方法是導入一個目錄
比如原項目叫abc,在abc目錄下想增加一個帶有多級目錄和文件的目錄jni,
cd jni
cvs import -m "new dir jni" abc/jni weiqiongimport R1_0_0_0
然后,客戶端(自己和其他人的客戶端)需要
cvs update -d 獲取最新的目錄更新

11. 刪除目錄
先刪除目錄下的所有文件,然后
cvs update -P 從工作copy中刪除空目錄,但是源代碼庫依然保留著空目錄
如果需要更新工作copy的目錄與源代碼庫完全一致(主要是包括空目錄),需要
cvs update -d

如果不需要恢復,應該
到服務器上rm -rf刪除該目錄
在客戶端,rm -rf刪除該目錄,然后在該目錄的同級CVS目錄下,修改Entries文件,刪除帶有該目錄名的一行

12. 導出不帶CVS目錄的源文件,export只能針對一個TAG或者日期導出,空目錄不會被導出:
cvs export -r release1 project_name
cvs export -D 20021023 project_name
cvs export -D now project_name
cvs export和cvs co module的區別在于export不生成CVS目錄,也不導出空目錄,用于作發布

13. 確認版本里程碑
cvs tag release_1_0

14. 開始一個新的里程碑,標記所有文件開始進入2.x的開發
cvs commit -m "make all release 2.0" -r 2.0
cvs up -A

15. 版本分支的建立
在開發項目的2.x版本的時候發現1.x有問題,但2.x又不敢用,
則從先前標記的里程碑:release_1_0導出一個分支release_1_0patch
cvs rtag -b -r release_1_0 release_1_0patch projname

一些人先在另外一個目錄下導出release_1_0patch這個分支:解決1.0中的緊急問題,
cvs checkout -r release_1_0patch
而其他人員仍舊在項目的主干分支2.x上開發

在release_1_0patch上修正錯誤后,標記一個1.0的錯誤修正版本號
cvs tag release_1_0patch_1
如果2.0認為這些錯誤修改在2.0里也需要,也可以在2.0的開發目錄下合并release_1_0patch_1
中的修改到當前代碼中:
cvs update -j release_1_0patch_1
(將release_1_0patch->update -j release_1_0patch_1的改變,merge到當前的版本中)

16.修改某個版本注釋:
每次只確認一個文件到CVS庫里是一個很好的習慣,但難免有時候忘了指定文件名,
把多個文件以同樣注釋commit到CVS庫里了,以下命令可以允許你修改某個文件某個版本的注釋:
cvs admin -m 1.3:"write some comments here" file_name
修改從1.2->1.3checkin時的注釋

17.在注釋中可以加入以下宏,cvs會自動將其替換為相應的項
$Id$ $Header$ $Author$ $Date$ $Revision$ $Log$ $Source$ $Name$

18.查看當前各文件的狀態,包括文件的當前編輯版本號,源代碼庫版本號,文件的狀態
cvs status filename

19.粘著選項
cvs update -D "1999-04-09"
刪除粘著,回到當前最新版本
cvs update -A

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/4/169120.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息