代码使用git进行代码管理。
代码控制如下图:
情景:
a/b两人提交了A/B两个分支。
需要测试机既可以测试A分支功能,又可以测试B分支功能。测试通过后,上线A分支功能。B分支功能暂不上线。
测试机环境如何搭建?如何分配。能够实现A/B功能都可以测试。但是又不需要合并到dev上才能测试。
主要想解决的问题是:团队合作。大家同时完成几个项目功能,需要分项目测试,且不能同时上线。因此不能都合并到dev上测试。
图中michael和bob表示两个同事的代码分支。
如果描述不清楚,我再补充。
项目本身测试很简单呀。
比如说,如果测试人员不需要同时测试,那就可以在需要测试的时候只部署需要测试的分支。
如果测试人员需要同时测试不同的分支,那么就部署两套呀。
难点在于这个项目的这几个待测分支是否有一致的依赖(服务、组件等),有就没啥问题,没有就还是先把依赖测试稳定在测试本项目吧。
而且,你们的项目(或者分支)是否差别很大,如果是为什么不分开使用独立的仓库。
你这样的做法本来就很矛盾;
问题:
你测试好dev(包括A和B), 你要上线A,不上线B,
那你如何能保证你要上线的A没有任何问题,因为你测试的明明就是dev,根本不是 master + A 啊。
我觉得好的做法应该是,每次上线的内容就单独测试; 所以根据你的情况,我的做法是:
(1)A + B -> dev,进行dev分支测试;
(2)把要上线的A剥离:A + master -> 新建分支 release20140430
(3)在分支release20140430上进行测试;
(4)测试通过后,才能上线;
我觉得你可以参考下 git-flow
,git-flow已经非常成熟了,你自己的flow肯定会有坑。
最好的方法就是一个分支一个远程测试仓库,这样当你功能完成后,直接先 push
到你的 remote branch
上,PM
或者测试人员可以直接到你的 branch
上测试你的功能。如果你希望一个仓库不断地 checkout
来 handle
多个 branch
无疑会增加不少麻烦,至少你需要有个人专门来调度,不然就会出现你刚 checkout
到你的分支,结果另外一个同事也需要用测试机,直接又 checkout
到他的分支上了。
如果你已经有了一台测试机器,这个做起来应该不会太复杂,例如你测试机器域名为 www.testcode.com
,那么,michael.testcode.com
用来测试 michael
的工作分支,bob.testcode.com
用来测试 bob
的工作分支,然后 www.testcode.com
用来测试 develop
分支。