假设讨论的分支叫
BR_feature-1
要合并一个子分支上从头(建立该分支之初)至尾(该分支上每个文件最新版本)是简单的
cvs update -j BR_feature-1 .
要得到该分支最新版本也是简单的
cvs checkout -r BR_feature-1 project
但是, 要想比较一个分支自从头至尾就做了哪些改动没有现成的办法, 因为没有办法指定一个分支的开头, 所有cvs命令接受-r 分支名 形式选项的, 都把这种形式理解为取该分支最新版本.
下面的脚本可以给一个分支的最开头处打上一个标签, 当然是普通标签. 标签名字固定为
BR_feature-1_init
即固定在原分支名前面加上_init
使用
./branch_init.sh /Repository project_dir Branch
三个参数依次是
/Repository 是仓库的名字
project_dir 是要创建分支的项目目录名, 讨论分支一般都是讨论在某个顶级目录上进行操作.
因为该脚本会在运行过程中调用cvs来checkout 指定的模块, 所以这两项是必需的, 当然CVSROOT, login是隐含的要求.
最后一项是分支名, 不要搞错, 脚本里并不检查这个.
以上方案在
(CVSNT) 2.5.01 (Travis) Build 1976 (client/server)
WinXP SP2/简单中文, cygwin 环境下测试通过.
给1500左右个文件分别assign标签, 耗时23分钟左右.
好的习惯是在开辟分支之初就建一个分支起始状态的标签, 而不是这种事后补救.
|
文件: | branch_init.zip |
大小: | 0KB |
下载: | 下载 |
|
阅读(918) | 评论(0) | 转发(0) |