Posted on 2009-05-18 10:05
Prayer 閱讀(1116)
評論(1) 編輯 收藏 引用 所屬分類:
CVS
CVS中為一個(gè)模塊創(chuàng)建一個(gè)分支使用的命令是tag或rtag。這兩個(gè)命令很相似,先用tag命令來做介紹。
假設(shè)有一個(gè)模塊foo_ware,一直在head主分支里工作,但是現(xiàn)在需要建立一個(gè)分支foo_tag用來做測試版本的開發(fā),則方法如下:
在foo_ware的一個(gè)工作目錄下,執(zhí)行:
cvs tag foo_tag //把服務(wù)器上的當(dāng)前工作目錄下的所有文件增加標(biāo)記foo_tag
cvs update -r foo_tag //如果要在當(dāng)前目錄的foo_tag分支下繼續(xù)工作,則要把當(dāng)前目錄下的文件狀態(tài)都更新為foo_tag分支,這是因?yàn)閠ag命令只為服務(wù)器上的文件增加標(biāo)記foo_tag,而不改變當(dāng)前目錄下文件的狀態(tài)。
cvs commit //如果當(dāng)前目錄下的文件在做分支之前已經(jīng)修改過了,而且又想把這些修改應(yīng)用于foo_tag分支,則要commit。
如果要從服務(wù)器上簽出另外一個(gè)foo_tag分支的副本,則用如下命令:
cvs co -r foo_tag -d new_dir foo_ware //必須要指明要簽出的分支是foo_tag,否則簽出的版本還會(huì)是head主分支。
這樣簽出之后,不論再update和commit,都是在foo_tag分支下進(jìn)行了,不會(huì)更改head主分支里的狀態(tài)。
tag和rtag的區(qū)別在于,rtag不需要有本地副本的存在,就可以增加或修改服務(wù)器模塊上的tag,而tag必須有一個(gè)本地版本做參考,更新服務(wù)器上的對應(yīng)于本地的那些文件,如上例所示。
如果要把分支版本里的修改合并到主分支里,方法如下:
在分之版本的本地副本做好commit之后,在主分支的本地副本下,執(zhí)行:
cvs update -j foo_tag //把foo_tag分支的修改合并到本地的主版本下
... do some revision
cvs commit //把合并后的版本更新到服務(wù)器的主版本上,因?yàn)橹暗膗pdate -j命令并不影響服務(wù)器上的主版本。