|
分支模式在SVN环境下的应用——代码线规则(规则模式)
索引>> |
|
|
|
分支模式的相关定义
模式名称:
代码线规则
别名:
每代码线规则
适用环境:
使用多条代码线开发软件的情况下。
问题:
开发人员如何知道需要将他们的代码存入哪条代码线中,并且何时保存?
动机
•每条代码线都有不同的目的 ;
•代码线的名称通常能暗示其目的;
•代码线的名称通常不能全部表达代码线的使用要点;
•如果代码写入到错误的代码线,而这错误的变更必须要回退,导致生产率的降低;
•使用正规文档描述代码线的用法会很有帮助,但是需要额外的记录和维护;
•这个文档太过拘谨就会有一点过度规划和专横了;
|
|
|
|
解决方案
除了给分支/代码线起一个有意义的名称之外,要给每条代码线明确目的,并使用简捷明了的策略描述其目的。其中应该包括以下一些要点:
•代码线包含何种工作,例如:开发、维护、一种特定的版本、功能或是子系统;
•配置项在怎样的条件下才能被检入,检出,分支,合并;
•对于不同的个人,角色,组,代码线该设置怎样的读写权限的限制;
•导入/导出关系:代码应该从其它哪些代码线中接受变更,同时应该将变更应用于其它哪些代码线;
•代码线的生命周期或结束条件;
•预期的工作负载以及集成频率。
让规则简短扼要:一个简单的经验方法是1-3段(各自25行25个字符,一页绝对是上限)。
请切记不是所有的代码线策略都需要上面所有的信息,只需要制定自己所需要的。一些版本控制工具允许在每个分支、代码线的名称上附加详细的注解,这是存放合适简短代码线规则描述的理想地方。开发者可以通过包含代码线名称的命令来查看代码线规则,而无需在别的地方找文档。否则,将代码线规则放在大家都知道的随手可得的地方(或许提供简单的命令或宏,对于给代码线名称可以快速显示规则)。
|
|
|
|
对模式的分析
代码线规则这种模式实际上就是一种最基本的分支/代码线使用规范,它强调每条分支/代码线都应该以快捷而有效的方式记录其相关的信息,并且这些信息可以随时被方便的访问。
作为更进一步的要求,除了将相关信息记录在案,在某些情况下对其中部分内容(如分支的周期及合并的频率等)进行提醒甚至约束也是有其必要性的。
|
|
|
|
宽松访问线(Relaxed-Access Line)在Subversion环境下的实现

如上图所示:
1、每条分支/代码线代码线创建时都有效的记录相关信息
2、对分支的生命周期和合并周期提供约束控制
注:上述功能的实现是基于在系统底层屏蔽了所有不受控的分支创建操作,而只能在特定应用系统内进行分支/代码线的创建,从而使所有分支/代码线相关操作都处于受控状态
|
|
|
|
相关模块
参见:SmartChange并行开发管理模块
|
|
|