多版本管理中代码合并的自动提醒

本文介绍了一种基于Tag的自动提醒方法,确保分支更改及时合并到主干。通过创建分支及对应的Tag,比较版本差异,提醒开发者合并更新。

一个产品在其生命周期过程中会存在很多版本,每发布一个Release版,都需要创建一个新的分支,用来维护市场反馈或者修复Bug。

通常来说,分支中做的所有变化,最终都需要合并回Trunk。一般的做法是定期地将分支中的更新合并回Trunk中,但是它需要一些额外工作(比如需要记录Trunk中更新到了分支的哪个版本,以便当分支有新的改动时继续合并到Trunk中),随着时间的增长以及项目范围的扩大,很容易出现疏漏,造成混乱。

有没有更好的方法呢?回答是当然。


本文要介绍的自动提醒的方法主要是基于tag的思想,主要分为两部分工作:

第一步,在创建分支的时候,除了分支本身,另外再创建基于该分支版本的tag,该tag是用来判断版本更新的基准。

#假设基于TRUNK_1_5创建目录Util的分支
cvs rtag -b -r TRUNK_1_5 BR_TEST Util
cvs rtag -r TRUNK_1_5 MERGE_TEST Util

这样,在对分支进行改动时,可以定期将分支的版本与tag的版本做比较,若分支的版本高于tag的版本,则提示存在未合并到Trunk的版本信息。


举例来说明,假设基于Trunk中Util目录的1.5版本创建了一个名为BR_TEST的分支以及一个名为MERGE_TEST的tag。

接下来,对BR_TEST分支中的file1.cpp文件进行三次改动,很明显,该文件的最新版本号为1.5.1.3;而此时在MERGE_TEST中,file1.cpp的版本仍然为最初的1.5;通过对比,就会发现需要将1.5.1.1~1.5.1.3之间的版本合并到Trunk。

提示信息参考如下:

Util/file1.cpp

revision 1.5.1.3
Fixed bug.
----------------------------
revision 1.5.1.2
Function updated.
----------------------------
revision 1.5.1.1
Added new function.


第二步,在将分支版本的改变合并到Trunk之后,必须更新tag中的版本,以作为新的基准。

cvs up -kk -jMERGE_TEST -jBR_TEST file1.cpp

cvs tag -F -rBR_TEST MERGE_TEST file1.cpp

还是上面那个例子,先是将BR_TEST分支中的改动合并到Trunk中,然后,更新MERGE_TEST中的版本为1.5.1.3。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值