搜狗浏览器上线前如何控制开发提交代码?

计划今天上线,开发不停在提交代码,测试一直在回归开发代码改动,上线时间越来越晚,甚至推迟到第二天,大家有没有这样的苦恼?


大家怎么解决这个问题呢?


有一个办法,每次上线前邮件或其他方式告知开发,要求上线当天不能提交任何代码。


这样做的结果是什么呢?

1. 开发还是会提交代码,因为他忘了今天上线;

2. 开发还是会提交代码,因为他是新来的,不知道上线当天不能提代码;

3. 开发还是会提交代码,因为他不知道今天上线;


搜狗浏览器最开始上线就是采用的这种方式,效果一点都不好。


那有什么方法可以有效地控制开发在上线前提交代码呢?下面介绍下搜狗浏览器现在使用的方法。


我们的代码是用SVN维护的,如果我们限制开发不能提交代码到SVN,那么就从根本上解决了这个问题。


1. 当确定好上线时间后,提前发送上线计划邮件给项目组。

原图大小:69.2K (表怪我马赛克打太多o(>﹏<)o)


2. 上线前一天,在build系统上,将计划上线的支线冻结。

原图大小:16.4K


代码冻结后,自动发出代码冻结通知邮件和代码提交密码邮件。

原图大小:13.2K

原图大小:12.0K


将支线冻结的本质是在SVN服务器端限制了SVN commit(具体原理后面再介绍)


3. 代码冻结期间,为了修复严重bug,开发需要提交代码时,只要在SVN提交log中写入提交密码即可。

原图大小:26.2K


4. 上线后,在build系统上,解除代码冻结。

原图大小:14.2K


解除代码冻结后,自动发出通知邮件。

原图大小:11.6K


以上就是搜狗浏览器上线前控制开发提交代码的流程。


下面介绍下在SVN服务器端限制commit的原理。


SVN使用的是Subversion,Subversion上提交代码时经过了两个回调函数:pre-commit和post-commit。


pre-commit是在SVN提交到数据库前执行的,它是可以更改的。


我们在pre-commit中增加了一些判断逻辑:

1. 检测该条支线是否被冻结。

2. 如果被冻结,提交log中是否包含正确的提交密码。

如果通过以上判断逻辑,就会执行post-commit,将代码提交到SVN。



原文链接

如需转载该篇文章,请注明来自“搜狗测试”


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值