Upsource代码审查(评审)流程
一、意义
在Upsource中,一次代码审查可以包含多个Revision(修订)或者整个分支,当一次审查流程发起后它将成为一个独立的实体且具有唯一ID。允许审查流程中的成员针对特定的代码交换意见或者讨论修改策略。
代码审查具有以下意义:
- 可以借助团队的力量保持项目代码干净清晰,可读性强,不包含严重的缺陷。
- 发现其他人的代码中存在的问题,借助代码审查引起他的注意。
- 当某部分代码有重大改变时,可以通过审查让相关人员保持跟进状态,并根据改变作出相应。
- 有新成员加入时可以更好的了解代码逻辑修改的原因。
二、各个角色的定义
- Author
通常是修订的提交者,代码审查即是来检查和观察他所提交的变更。
- Reviewer
Reviewer预计将检查作者提交的变更,并留下反馈。他可以讨论具体的行,或者添加一般性注释。他也可以完成审查,接受改变或提高对他们的关注。查看其他审查人员对审查工作流程的更改。
- Watcher
预计不会参与审查过程的人,每当有重要的变化时,Watcher就不断更新项目的状态。请参阅由队友介绍的监视更改,以了解观察者的工作流程。
三、审查流程
代码的修改者一般作为审查流程的发起者,如果要邀请团队成员其他成员进行代码审查,需要进行以下操作:
- 将更改内容提交到版本管理系统(Gitlab),在我们当前项目开发流程中这里可能需要发起MR。
- 创建一个审查流程(可以设置为系统自动发起)。
- 邀请审查参与者(Reviewer和可选的Watcher)。
- 讨论代码的问题,审查流程参与者交换意见。
- Author解决问题,提交版本修订,并将新的修订添加到现有的评审中。(IDEA的Upsource插件支持自动添加)
- 当Reviewer接受你的修改后,便可以关闭审查流程。
以下详细讲解如何创建Upsource代码审查。
创建Review
- 登录upsource服务(http://www.wuzguo.com ),然后选中需要进行审查的项目。
- 单击项目名称打开,项目主页视图显示按时间顺序列出所有修订:
- 向下滚动列表,或者通过搜索功能找到对应的修订。
- 将光标移动到对应的修订条目,将出现一个Review changes链接:
- 单击Review changes,然后从弹出菜单中选择Create Review。一个新的评审被创建后,它将拥有一个全局唯一的ID显示在左上角(如:
AEE-CR-7
)。
邀请参与者
- 默认的审查标题与修订提交到VCS的内容相同,可以自定义编辑修改标题。在接下来的步骤中,需要指派至少一个Reviewer进行代码审查。
- 可以添加多个参与者,在审查流程发起后任何时刻也可以对审查人员就行增改,被添加的用户将通过电子邮件或 Upsource news feed (通知流)得到通知。
设置期限
- 您可以选择设置审查的最后期限提醒评审人员完成代码审查。(一般情况下管理员设置默认值)
参与讨论
你可以发表评论或者向其他参与者发表意见,并回复其他人留下的评论。
Review进展
在审稿人的图标下面有一个进度条,可以看到每个审查者的审查进度。鼠标悬停在它上面,看看有多少文件已经被审查者查看。
审查决议
当审查人员接受(accept )或关注(raise concern)变更时,他们的决议用相应的标志表示:
添加新修订
如果最初提交的修订没有得到Reviewer的Accept,可以按照Reviewer的要求处理这些问题并提交代码的修订到gitlab,然后可以将一个或几个新的修订附加到原始审核中以获得Accept。
注意:如果增加的修订来自不同的提交者,那么所有这些提交者也会作为Author添加到审查流程中。这样整个讨论和修订的历史都包含在一个审查流程中,并且只要审查流程是打开(Open)的,在不同的修订过程中始终可以看到它。
当一个新的修订添加到审查流程的时候,你只看到那些修订的差异。如果想在评审中显示或隐藏任何额外的修订,可以使用修订选择器快速切换:
要从审查中移除修订,在review视图中单击修订名称旁边的detach图标。
在IDE中打开Review
当我们在IDE(如:IDEA)中安装并配置Upsource插件时,可以通过点击这个链接在IDE中对应的tab中查看对应Review所包含的评论和修改并进行评审操作。
关闭评审
一旦所有Reviewer都Accept了你的更改,您可以通过单击右侧窗格中的相应按钮来关闭这次评审流程。
Review 状态
一个评审流程可以分为三个不同阶段:
- Pending :评审流程被创建并且分配人员完成。
- Completed: 所有审阅者通过接受(accept )或关注(raise concern)变更的时候。
- Closed :由作者关闭的,不再需要参与者采取进一步的行动的评审流程。
删除Review
不管你是因为失误创建了一个Review,还是想要清理过时的评论,不管它目前的状态是什么,你都可以删除它。
四、审查他人的变更
如果你是审查人员,通常需要执行以下操作:
- 进入评审并检查变更。
- 留下你的反馈,参与讨论。
- 有选择地邀请其他参与者。
- 通过点击 (accept )或(raise concern)来完成变更的评审。
检查修改
当有人邀请你参加审查时,你会收到一封电子邮件的通知或者受到upsource的消息提醒,里面包含了对该评论的直接链接。点击链接可以进入评审页面,面板上的 **Review summary ** (概览)列出了与审查相关的所有事件和评论。
**Overview **选项卡下面显示更改的文件列表。单击文件名可以显示文件的修改内容。
您可以通过按下相应的按钮来进行差异比较或查看整个文件。这些视图可以让你更好的查看代码。按下 ESC
按钮可以返回摘要视图(summary view)。
参与讨论
你可以发表评论,向其他参与者发表意见,并回复其他人留下的评论。
邀请参与者
如果你先让其他人参与评审流程,你可以根据实际情况增加Reviewer或Watcher。
你也可以在发布评论的时候添加Watcher,在文本框中输入@ 便可以选择对应的人员。你可以添加任意数量的参与者,被添加的用户将通过电子邮件和Upsource news feed得到通知。
选择修订
当新的修订被添加到评审中,您只会看到这次修订的差异,并且可以继续进行评审,而不必再次检查以前提交的更改。如果您想在评审中显示或隐藏其他额外的修订,使用修订选择器可以快速切换修改。
完成审查
如果你对作者的修改感到满意,那你就可以点击Accept。如果你觉得这些问题值得怀疑,那就点击Raise concern
。
五、监视审查过程
作为一个观察者,您通常执行以下任务:
- 进入评审并定位更改。
- 阅读评论并有选择地参与讨论。
当有人邀请你参加审查时,你会收到一封电子邮件的通知(或者的Upsource的 News Feed),其中包含了对该评论的直接链接。您还将在此评审中更新任何结果更改。点击链接可以进入评审页面。主面板列出了与审查相关的所有事件和评论。
**Overview **选项卡下面显示更改的文件列表。单击文件名可以显示文件的修改内容。
从这里,您可以通过按下相应的按钮来进行代码的比较或查看整个文件。
参与讨论
你也可以发表评论或者向其他参与者发表意见,并回复其他人留下的评论。
取消消息推送
如果想停止对评论的监视,停止接收消息通知,可以从观察者列表中删除你自己。
如果不想删除自己,可以设置为Mute review(消息免打扰),这样这个评审后续的讨论信息就不会出现在你的News Feed中了。不过链接到评审中还是可以看到的。
六、讨论和评论
你可以发表评论,向其他参与者发表意见或者回复其他人的评论。也可以直接在评论区@其他人(不一定是评审参与者)。
有三种不同类型的注释(comment,评论):
- 评审评论
评审评论没有与任何特定的文件或代码的任何部分联系在一起,它的主题可能是评审范围内的任何内容。
- 代码块评论
代码块评论是对一个文件中的一个特定的代码片段的注释。
- 行评论
行注释与特定的代码行相关联。
提交评论
- 评审评论
在Review页面上,选择Review summary(默认视图)。在文本框中输入您的消息,并单击Add comment按钮。
- 行评论
在Review页面中,选择添加行注释的文件:
然后选中对应的你需要添加评论的行。
- 代码块评论
打开文件然后按住左键选中代码段,然后在弹出的页面中选中”Comment on selection”添加评论。
代码块注释和行注释嵌入在代码中,并以黄色突出显示。
评论的选项
将光标置于评论之上,就可以看到评论的选项。
下面介绍各个选项的用途:
编辑这条评论。
链接到该文件中(如果是文件中的评论)该评论的位置。
点击添加对该评论的反应(表情包)。
Resolve
当某次讨论主题达成共识时,点击Resolve
链接标记讨论的问题得到解决(Resolved )。
回复这条评论。
为讨论添加一个标签。