TFS源代码管理规范
总则
1) 为保障公司源代码及文档的安全,保障公司源代码的完整性,明确源代码使用的控制流程,特制定此规范。
2) 本规范所管理的源代码及文档包括我公司技术部门自主开发的源代码及相关文档、支撑整个系统及软件正常运行的第三方软件、控件和其他支撑库等及其相关文档、第三方合作商开发的源代码及相关文档。
3) 本规范重点在于控制源代码的完整性,规范源代码不被非授权获取,不被非授权复制和传播。
4) 本规范使用于所有使用Team Foundation Server(以下简称TFS)管理源代码的部门及相关人员。
代码管理
- 1. 代码完整性
1) 所有软件的源代码文件及相应的开发设计文档均必须及时加入到源代码服务器中指定TFS代码库中。
2) 支撑系统正常运行的第三方软件、控件及其他支撑库源代码及相关文档必须及时加入到源代码服务器中指定TFS代码库中。
3) 源代码必须进行现在备份操作,并由专人进行保管,定期进行恢复测试,以保障源代码的安全性和完整性。
- 2. 代码操作
1) 在签入源代码时,必须添加签入注释,方便其他技术人员知道更改内容。
2) 在签入源代码时,若出现代码冲突,必须及时解决代码冲突,防止源代码被该更或覆盖造成软件异常。
3) 在编辑源代码时,必须对源代码进行签处更新,保证代码处于最新版本状体或是指定版本状态。
4) 在编辑源代码时,应加入相关注释,方便其他技术人员理解内容。
5) 在版本发布后,修改BUG,应将源代码进行分支,并在分支上进行BUG修复操作,BUG修复成功后,应将分支的代码合并到源代码中。
6) 在合并源代码时,若出现代码冲突,应谨慎选择解决冲突的版本,避免造成源代码被覆盖或修改内容丢失。
7) 在更改代码内容后,不确定修改的代码能否进行签入操作或是不能判断代码内容是否正确时,需选择搁置挂起更改,请求团队其他成员确认修改的是否允许签入或是代码是否正确。
- 3. 代码复制和传播
1) 任何源代码文件包括设计文档等技术资料不得利用如QQ、MSN、邮件等涉外网络环境形式进行传输。
2) 源代码向公司技术人员以外复制必须获得总经理的书面授权。并必需记录复制人、批准人、复制时间、复制目的、文件流向、文件版本或内容。
3) 源代码以各种形式的介质进行储存和备份,必须由专人进行保管。对于这些介质储存源代码的借阅,若用于公司技术部门内部使用,需经过技术部门部长的授权,若用于公司技术部门以外的使用,需获得技术部门总经理的书面授权。
4) 对于以纸质形式存在的源代码清单、设计文档等,要求必需进行专人管理。对于这些纸质材料的外借、分发、复印等,只要非技术部门门内部使用的情况均必需获得总经理的书面授权,对于技术部门门内部使用的则必需如数按时按量回收,并且使用区域仅限于技术部门门内部,对于需要离开技术部门门场所的情况,同样需要获得总经理的书面授权。
5) 任何源代码的借阅、复制必须进行详细的登记,必需记录借阅人、批准人、借阅时间、借阅目的、文件流向、文件版本或内容、归还时间。
6) 对于因合作需要,需要向外复制、传播、分发源代码的,不论是全部还是部分代码和资料,均必需和对方签订技术、源码的保密协定,明确对方应当承担的对源码保密的责任和义务。
权限管理
- 1. 角色管理
1) 在TFS团队项目建立时,系统预定义了参与者(Contributors)、访问者(Readers)、生成管理员、项目管理员、项目有效用户五个角色组,其中项目管理员的权限是不可修改的,其余项目角色组可根据需求修改权限。不同的用户应添加到不同的角色组。
2) 在成员参与项目时,应当给角色组赋予需求的最小权限。
3) 在与第三方合作时,对第三方人员必须单独建立角色组,并赋予对应需求的最小权限。
- 2. 权限控制
1) 源代码服务器对于共享的TFS库的访问建立操作系统级的,基于身份和口令的访问授权。
2) 在TFS库中设置用户,并为不同用户分配不同的,适合工作的最小访问权限。要求连接TFS库时必须校验TFS中用户身份及其口令。在TFS库中要求区别对待不同用户的可访问权、可创建权、可编辑权、可删除权等。
3) 工作任务变化后要实时回收用户的相关权限,对TFS库的管理要求建立专人管理制度,专人专管。每个普通用户切实保证自己的用户身份和口令不泄露。用户要经常更换自己在TFS库中账号的口令。为每个参与项目的人设置权限,每人只有自己的权限范围内的代码。核代码专人管理。要获取不属于自己范围内的文件,例如:代码、数据库,需求文档等,需经总经理同意。
4) 涉及、接触源代码的计算机必须建立专人专用制度,任何其他人不得在未获得总经理授权的情况下操作和使用此计算机。此计算机的专用人也不得私自同意或者漠视他人非获得授权使用本计算机。对涉及、触及源代码计算机的使用授权仅由总经理发出,其他人都无权执行此授权。
5) 曾经涉及、触及源代码的计算机在转作它用,或者离开技术部门门之前必须由网络管理人员全面清除计算机硬盘中存储的源代码。如果不能确定,必须对计算机中所有硬盘进行全面格式化后方可以转做它用或离开技术部门门。
6) 外来存储设备不得直接连接到技术部门门的计算机设备上。如需拷贝文件,必须通过统一的技术部门指定的公用计算机上在网管人员监督之下进行。此公用计算机在任何时候不得接触、访问、存储源代码文件。
7) 通过网段隔离方式使技术部门的计算机只能自行组成局域网,并保证其它网段不能访问到技术部门的网络和网络中的计算机设备。
版本控制
1) 软件系统的版本控制是指可以自行运行的各子系统的版本控制。
2) 软件系统的版本号由评测小组的人员确定,由评测小组进行版本控制工作。
3) 软件系统的版本号由3部分构成,即主版本号+次版本号+修改号。主版本号1位,只有当系统在结构和功能上有重大突破改进后才发生变化;次版本号有2位;修改号8位,采用提交时的日期,当系统进行任何修改后,包括数据库结构发生变化,修改号都要随之改变。例如:Ver3.31.19990317
4) 各子系统的版本号独立。
5) 各软件系统应该有显示详细版本号的功能。例如help菜单下的about功能。系统提交存档时,评测服务部要进行版本号检查。
6) 新系统开发完成、或已存档的系统进行修改,修改完成后,进行提交存档时,由评测评测小组系统分析工程师确定新版本号、或更改版本号。
7) 软件系统,产生新的版本后,老版本的软件系统是否继续保存,取决于以下条件:
a) 老版本的系统如果有客户还在使用,在客户升级以前,必须继续保存。
b) 老版本的系统已经没有客户使用了,并且新版本的系统已经把老系统的文档完整地升级过来,这样可以删除或覆盖老版本的系统资源。
c) 对于要删除或覆盖的老版本系统,可以统一备份起来。
若需转载,请注明出处