针对项目的每一次Pull Request就相当于一次代码评审,评审以讨论的形式显示在Pull Request中。
在Pull Request中还能够看到对应的提交(一个或多个),并可以直接针对提交进行代码评注。对于采用集中式协同的项目,即使较少使用 Pull Request,也同样可以使用代码评注。代码评注会触发通知邮件给项目的开发者。
代码评注有两种形式,一种是针对整个提交的评注,另外一种是对代码进行逐行评注。
查看项目的提交历史,从中选择一个提交,如图4-37所示。
如图4-38是查看提交的界面。除了提交说明、提交者信息之外,还显示提交所修改的文件和改动差异。在查看提交页面的最下方显示一个提交评注对话框,可以在其中写下评注。评注可以使用 Markdown 语法。
添加评注后,所评注的提交的作者会收到通知邮件,提醒针对自己的提交有了新的评论。通知邮件如图4-39所示。
通过Web界面可以看到添加在提交下方的评注,并可以撰写新的评注展开讨论。评注者本人或提交的作者还可以编辑甚至删除评注。如图4-40所示。
GitHub还支持Git自身提供的评注功能[1],如图4-41所示的是提交http://git.io/git-notes[2]的评注,这个评注并非通过GitHub添加的,而是由git-note命令提交的评注。这种评注针对一个特定提交只能有一个,GitHub只能显示不能编辑和删除。关于如何通过命令行查看git-note格式的评注,参见《Git权威指南》第570页“41.5 Git评注”。
还是以gotgithub/helloworld版本库中的提交为例,看一下GitHub支持的逐行评注功能,即针对提交中的任意一行添加评注。浏览提交,如图4-42所示,当鼠标置于任意一行代码时,在该行代码的左侧会显示一个添加注释的图标。
点击该图标(用于添加逐行评注的图标),会显示如图4-43所示的添加逐行评注对话框。该评注对话框出现在两行代码之间,在其中写下评注。
添加评注后,项目的开发人员同样会收到邮件通知。针对同一行代码的多次评论按时间顺序依次显示,图4-44展示了多个行间评注,其中一个评注还使用 Markdown 语法嵌入了一个图片。
更有意思的评注可以围观MrMEEE/bumblebee项目的一个bug修正提交(被戏称一个空格引发的惨案)。地址: http://git.io/giant-bug[3]。
[1] | http://www.kernel.org/pub/software/scm/git/docs/git-notes.html |
[2] | 即网址 https://github.com/ossxp-com/gitdemo-commit-tree/commit/e80aa74 |
[3] | 即网址 https://github.com/MrMEEE/bumblebee/commit/a047be85247755cdbe0acce6 |