0

如何使用CVS的分支

Posted in CVS at 十一月 11th, 2010 / No Comments »

CVS中为一个模块创建一个分支使用的命令是tag或rtag。这两个命令很相似,先用tag命令来做介绍。
假设有一个模块foo_ware,一直在head主分支里工作,但是现在需要建立一个分支foo_tag用来做测试版本的开发,则方法如下:
在foo_ware的一个工作目录下,执行:
cvs tag -b foo_tag //把服务器上的当前工作目录下的所有文件增加标记foo_tag
cvs update -r foo_tag //如果要在当前目录的foo_tag分支下继续工作,则要把当前目录下的文件状态都更新为foo_tag分支,这是因为tag命令只为服务器上的文件增加标记foo_tag,而不改变当前目录下文件的状态。
cvs commit //如果当前目录下的文件在做分支之前已经修改过了,而且又想把这些修改应用于foo_tag分支,则要commit。

如果要从服务器上签出另外一个foo_tag分支的副本,则用如下命令:
cvs co -r foo_tag -d new_dir foo_ware //必须要指明要签出的分支是foo_tag,否则签出的版本还会是head主分支。
这样签出之后,不论再update和commit,都是在foo_tag分支下进行了,不会更改head主分支里的状态。

tag和rtag的区别在于,rtag不需要有本地副本的存在,就可以增加或修改服务器模块上的tag,而tag必须有一个本地版本做参考,更新服务器上的对应于本地的那些文件,如上例所示。

如果要把分支版本里的修改合并到主分支里,方法如下:
在分之版本的本地副本做好commit之后,在主分支的本地副本下,执行:
cvs update -j foo_tag //把foo_tag分支的修改合并到本地的主版本下
… do some revision
cvs commit //把合并后的版本更新到服务器的主版本上,因为之前的update -j命令并不影响服务器上的主版本。

如果当前工作目录中使用的是一个分支,要全部升级到主干的最新版本话,使用以下命令:

cvs update -AdC

此命令会更新目录下所有文件到主干的最新版本。如果旧的文件改动比较大,与最新版本有冲突的话,会先把旧的文件备份成.#file.ext的形式。

http://blog.csdn.net/lzyzuixin/archive/2010/06/10/5661649.aspx

Published in CVS
Tags: ,

No Responses to “如何使用CVS的分支”

Leave a Reply

请输入算式结果(看不清请点击图片)
(必须)