Gitlab未必最佳实践
背景及目标
公司使用git和gitlab有相当一段时间了,一直只是用来做代码管理,gitlab的很多功能都没有用上。经过一段时间的试用,从上周开始,在一个项目中开始推行gitlab的其他功能,重点是代码评论,里程碑和Issue,主要想达到的目标是:
- 项目节奏能有一个更好的把控。
- 更加有效的进行bug管理。
- 使得code review可以进行下去。
先说说这一周多团队试用的结果:
- bug管理方面的确有了很大的提升。
- 节奏好了点,但是里程碑规划还不够科学,主要项目处在测试阶段,大家对自己的开发时间还没有比较好的把握。
- 单纯试用gitlab的代码评论功能来做code review略显单薄,没有比较好标识是否审核过的状态。
里程碑
里程碑功能主要用来把控项目的进度及节奏,对于我们来说,我们是以周为单位进行跟进。只有项目的master用户有权限设置和编辑里程碑。
- 所有项目以周为单位建立里程碑
- 原则上本周的里程碑不接受新的Issue,除非是严重的bug,需要马上修复
- 除了本周正在进行的里程碑之外,还应该往后规划一个或者多个里程碑
- 里程碑的名字以周五的日期为标识,例如“v2015.06.05” (方便可以根据里程碑的名字对个人的工作进行汇总查看)
Issue
- Issue是谁提出的,谁就要负责跟进Issue的解决情况。
- 每个Issue从属一个里程碑
- 提Issue的时候需要指定给一个人(谁来完成这个Issue),如果有些Issue不知道应该指派给谁,就直接指派给项目负责人
- 一个Issue可以是一个bug,一个建议,一个特性,总之是一项可以指派给一个具体的人的任务。
- 可以自己提Issue指派给自己,例如发现某块代码需要优化或者重构等等。
- 如果是代码相关的Issue,最后在git commit时最好能够关联对应的Issue
- 指派错误时可以重新指派:例如A被指派给一个Issue,但是A觉得这个应该由B来完成,这时A可以把这个Issue重新指派给B
- 当Issue被关闭时,其发起人应该定时(例如每天的某个时间)检查那些关闭列表(或者可以直接查看邮件列表),并检查,如果确实已经完成,可以打上一个已完成的标签,否则可以评论后重新打开该Issue。
- Issue的标题应该基本说明了问题,里面的描述应该更多的是辅助性描述
Code Review
- 大家提交的每次commit都会有记录,可以直接进行diff操作,并且可以评论。
- 除了指定需要相互review的同事,你对谁的代码有兴趣,都可以直接查看或者评论。