一、分支模式的相关定义
模式 宽松访问线(Relaxed-Access Line)
问题 如何确定代码线访问控制规则的限制或排他程度?
动机
•如果许多开发者在代码线上工作,或某一些人缺乏经验,那严格的治理是必要的。
•如果代码线上发生的工作具有显著的风险级别或难度,则检入和合并需要更紧密的监控和/或验证。
•保证代码线一直处于完整的状态非常重要,这样就不会影响其它工作在代码线上的人们。
•如果代码线对应了特定提升级别(见阶段集成线)或生命周期阶段,这也许指明了对特定代码线验证一致性的必要性级别。
解决方案
如果代码线是用来开发或维护(而不是排它或集成),并且工作在代码线上的团队规模相对较小,人员富于经验并可靠,那么给开发者有相对宽松自由的区域,让他们做他们已经知道如何去做的事情:在一起以及时的方式工作。使用最小检查和控制,但是要确保代码线所有者可以认真对待他的工作,并可以一直知道代码线的状态以及确认完整性是否被特定风险/复杂开发任务危害。
相关模式
MYOC(合并你自己的代码)及其变种PYOC(传递你自己的代码)是使用宽松访问线最常见的副产品(或原因),如果在你的环境中,风险较小,而且开发者合并自己的变更到代码线的交流通畅,那么我们有充足的理由使用宽松访问。
二、对模式的分析
这种访问模式通常适用于冲突不严重(如开发初期或彼此按模块独立开发)的情况,要求相关人员具备一定的水准以保证开发的质量,而在开发的后期通常不适用这种模式。
三、宽松访问线(Relaxed-Access Line)在Subversion环境下的实现
如上图所示(相关内容只是相关模式实现的一个实例,实际使用时可根据实际需求对角色及授权进行调整):
1、代码线的所有者对代码线拥有完全的操作权限
2、主管及EPG成员仅对代码线拥有有限的操作权限(读)
3、除测试人员以外的项目成员都对代码线拥有完全的读写权限
4、代码线的所有者以及项目经理和配置经理拥有对代码线锁的权限