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