创建code review

简单的说,点击按钮的顺序依次是:create review -> create review -> [browse changesets ] 或者[ choose branches] ->edit details -> start review

选择项目

进入fish eye,点击“create review”,在弹出窗口中选好项目,然后点击弹出窗口右下角的“create review”。如下图。

选择评审方式

点击后会弹出一个新窗口。这个窗口主要是选择“待评审代码”的。一般我们用前两个,“browse changesets”或者“choose branches”就可以。

“browse changesets”是针对代码变更记录(可以认为等同于代码提交的记录)来创建review的。“choose branches”是针对开发分支来创建review的。

在使用上,二者的区别主要在于:针对变更记录的话,当开发分支中有新提交的代码时,fisheye不会自动更新;针对开发分支则可以自动更新。后面细说。

后面几个选项基本没用过。

browse changesets

首先看“browse changesets”,点击后的界面如下图。第一个红框里是过滤器,用来查找代码变更记录;第二个红框里则是找到的变更记录。

找到需要review的变更记录后,勾选上箭头所指的复选框即可。然后点击“edit details”,去选择评审人。这个在后面细说。

choose branches

如果刚才选的是“choose branches”,那么看到的界面将如下图所示。

这个界面稍好点在于,它好歹有点说明性的文字了。按照说明,选好代码所在的reository和branch(如红框所示),然后点击“add branch”,就可以把这个分支已变更过的所有代码全部加入到review中了。

注意说明,“you can add more than one branch”。当然,大多数情况下咱们只针对一个分支做review。

点击完“add branch”之后,就是下面这个界面。注意红框,默认“auto update”是“on”的。这就是前面说的“针对变更记录的话,当开发分支中有新提交的代码时,fisheye不会自动更新;针对开发分支则可以自动更新”。当然,也可以调到off。

edit details

选好分支之后,也别急着start review。先点击箭头指向的“edit details”。

无论选择按变更评审,还是按分支评审,点击“edit details”之后,都会看到下面这个界面。

需要我们填写的主要是两个红框的内容。

评审人

第一个是评审人。输入姓名的pinyin或者中文,都会有提示。点击suggest reviewers是按照过往的贡献率来筛选的,对咱们用处不大。

评审主题

第二个是评审主题。默认情况下会把历次提交代码时的备注信息加进来。这些信息用处不大。建议大家在这里写明白一下需要评审的重点范围。

开始评审

都填好之后就可以start review了。

点击 start review之后,fisheye会自动发邮件给你所添加的reviewers。然后就可以开始评审了。

评审代码

选择要看的文件

评审人进入一个code review后,会看到下面的界面。

对比文件改动

左侧红框里就是本次待评审的所有文件。从里面选择一个,点击它。

点击左侧的一个文件后,会看到如下图的界面。

界面右侧就是你所点击的文件的变更情况。绿色底色是新增的行,红色底色(截图里没有)是被删除的行。

注意红框里,行号是不连续的。这会给我们评审带来不小的困扰。要解决这个问题,可以按照箭头所指,依次点击"view" -> "full context"。这样就可以看到文件的全貌了。

view里其它选项也有一些作用,大家可以自己尝试。

发表评审意见

代码评审是要提意见的。fish eye里提意见的方法很简单:在你要提意见的代码上点鼠标左键,就会弹出一个输入框,如下图所示。

按照箭头所示,点击代码行,就出现红框里的输入界面。在这个界面上记录下意见或建议,然后点击下方的“comment”按钮,这条评审意见就被记录下来了。

完成ping'shen

当所有文件都评审完了以后,点击界面右上角的“complete”,即可完成自己的评审工作。

这里,不同的角色会显示不同的按钮,如果是review发起人,或者是moderator(祥哥),箭头处会是“close”。

评审总结

评审被close之后,还能做什么呢?

fish eye对后续总结提供的功能支持比较弱。我目前发现的比较有用的,就只是导出为csv文件。

首先从code review界面上点击tools -> view review history,如下图。

在tools里有个“download review as text”,那个可以将review中的历次活动(创建,修改,评审意见,完成,关闭等)记录为txt。但是txt格式不便于整理。用处不大。

按上图点击后会看到这样的界面。

有两个tab页。details就是历次活动的详情记录。timeline……我点过,但是没响应。箭头所指的是导出为csv格式。

csv格式文件可以用excel打开。打开后可以看到它的内容其实和界面上的detail基本一样。除了——中文乱码!

妹的……

中文乱码的csv文件:

如果有耐心整理csv文件,或者用同样的耐心整理txt文件,或者运维同事能帮忙解决下这个问题的话,从这里得到的"COMMENT_ADDED"等评审意见数据,可以用来汇总整理我们代码中的主要问题。不过这是后话了。