确认版本里程碑:多个文件各自版本号不一样,项目到一定阶段,可以给所有文件统一指定一个阶段里程碑版本号,方便以后按照这个阶段里程碑版本号导出项目,同时也是项目的多个分支开发的基础。
TAG创建
cvs tag release_1_0 project_name
%给工程打Tag
开始新的里程碑
cvs commit -r 2
%标记所有文件开始进入2.x的开发
注意:CVS里的revsion和软件包的发布版本可以没有直接的关系。但所有文件使用和发布版本一致的版本号比较有助于维护。
创建版本分支
在开发项目的2.x版本的时候发现1.x有问题,但2.x又不敢用,则从先前标记的里程碑:release_1_0导出一个分支 release_1_0_patch
cvs rtag -b -r release_1_0 release_1_0_patch project_name
%为工程版本为release_1_0 创建分支
访问版本分支
一些人先在另外一个目录下导出release_1_0_patch这个分支:解决1.0中的紧急问题,
cvs checkout -r release_1_0_patch
%从检出分支版本号为release_1_0_patch
而其他人员仍旧在项目的主干分支2.x上开发
在release_1_0_patch上修正错误后,标记一个1.0的错误修正版本号
cvs tag release_1_0_patch_1
%更新分支版本
合并
如果2.0认为这些错误修改在2.0里也需要,也可以在2.0的开发目录下合并release_1_0_patch_1中的修改到当前代码中:
cvs update -j release_1_0_patch_1 %合并一个分支 (差异合并)
cvs up –r
elease_1_0_patch_1
%将目录切换到主干版本的目录下,将分支版本合并到新的主干版本上。
cvs ci –m “注释” test.java % 提交
cvs up –r
elease_1_0_patch_1 test.java %合并一个文件
删除版本/分支
cvs tag –d tagName projectName %删除工程中名为tagName版本
cvs rtag –d tagName projectName %删除工程中名为tagName版本
cvs tag –d –B branchName projectName %删除工程为branchName分支
cvs rtag –d –B branchName projectName %删除工程为branchName分支
以前画的一个图: