准备工作

Upsource官方文档

Upsource是jetbrains推出的一款基于web的code review工具。官方网站在:Upsource官方网站;文档参见:官方文档(全英文)

注意:自2022年2月1日起,Upsource 不再作为商业产品提供。

本机绑定hosts

必须绑host的原因有两个。

Upsource内部链接跳转都以服务器的hostname作为基准URL。因此,如果用ip访问,在页面上点击某些按钮时,可能跳转不了页面。

此外,后面那个域名是服务器的hostname。

如果可以在局域网内配置DNS,也可以不在本地绑定hosts。

浏览器限制

官方建议使用以下浏览器来访问、使用Upsource。不清楚使用其它浏览器会有什么问题,多半是前端渲染方面的吧。

  • Firefox
  • Chrome
  • Safari
  • Edge
  • Opera  

注册用户

在安装完成、初始化服务时会创建两个用户:admin和guest。除了这两个用户外,普通用户需要注册才能使用。

在没有登录的情况下,点击上面那个地址应该会看到这个页面:

点击右上角的“log in”,在弹出页面中选择登录、注册、或以访客身份登录。没有账户的同学请注册一个吧。Upsource的免费版本允许10个用户使用,先到先得。请注意填写Email并验证地址。不填的话登录后Upsource会不停地弹出提示,很烦。  

创建项目

要创建项目需要使用admin账号登录。   登录后应该会进入这个界面。界面上现有的项目(credit-preloan和yrdas-master)、以及News feed(三条review的评论)和Reviews(被News feed遮挡住了),都是我之前测试时创建的。  

进入项目管理界面

要创建新项目,我们需要在上面那个界面上,点击右上角坐起第二个图标(螺母形状的那个),从而进入下面这个界面。

点击“Connect to GitHub”,在新界面上填上项目的git地址,以及操作Git所需的认证方式(咱们一般是用SSH key)。搞定之后会回到上面这个界面,并且可以看到新项目正在pull。等pull完成后,项目就创建好了。

项目授权

需要把项目授权给用户,然后用户才能为这个项目进行CodeReview。授权操作是以用户为维度,而非以项目为维度的。因此我们需要在上面这个页面上点击“Users”,进入用户管理界面:

点击某个用户的名字,在新页面上选择“Roles”tab页,点击“Grant role”,即可在弹出窗口上给这个用户授予某个项目的某种权限了:   除了给单个用户授予单个项目的权限之外,也可以按“group”授权。这里略过。

完成授权后,就可以开始CodeReview了。  

CodeReview

以developer权限为例,来看看如何开展CodeReview。

创建CodeReview

以普通用户登录后,可以看到这个界面:   FAVORITES是空的,因为我没有设定常用项目。在下面的三个栏目点击项目名称(credit-preloan),进入项目界面:   在这个界面上就可以看到这个项目的Git分支和提交记录的情况。

创建一个CodeReview的简单方法,就是把鼠标移动到某次commit上,从浮现出的“Review changes”按钮中选择一个合适的选项:

  • 为这次提交创建新的Review(Create review)
  • 将这次提交附加到已有的Review上(Attach to review)
  • 为对应的分支创建新的Review(Create branch review)
  • 接受此次变更(Accept changes)。

除最后一个暂时不清楚什么功能外,其它三个的功能是显而易见的。

这里以Create review为例。点击后进入下面这个界面:   上部是整个review的操作。Accept是review通过;Rasie concern是提高关注,目测是不通过的意思。close review是强行关闭,不管有没有通过总之结束这次review。最后是remove review,删掉这个review。这一行的右侧有一个浅色的链接:Open in IDE,后面介绍。

下部的左侧是这次review中发生变更的文件树。右侧是review的汇总信息。点击文件树中的文件,就可以开始查看变更、提交评论了。  

Open in IDE

以上述功能而论,似乎Upsource与FishEye等CodeReview工具并没有什么太大差别。凭借“Open in IDE”,Upsource可以更胜一筹。

要使用这个功能,需要有两个前提:为IDEA安装Upsource插件;在IDEA中打开某个Review所属的项目。  

首先需要为Intellij IDEA安装Upsource插件如下:

插件离线安装信息 如果不能通过IDEA直接下载、安装插件,可以到这个页面上下载对应自己IDEA版本的插件的离线安装包。

 

安装好之后,在Upsource→Connection中,填入服务地址,并点击“Test Connection”。正常来说应该会自动打开浏览器、并跳转到一个用户认证界面。此时需要用自己的用户登录、认证一下。注意不要用admin用户去认证。认证通过后浏览器会提示“Authorization successful”。到这里IDE端就配置好了。   安装、配置好插件之后,回到浏览器端,点击Review界面上的“Open in IDE”,IDEA中会打开这个界面:   点击其中某个文件,会弹出compare界面如下。在这里就可以开始Review了。需要添加评论时,在对应的行上点击右键,选择“leave a comment”即可。comment中应该是支持markdown语法的。   基本用法就介绍到这里。更多的配置和使用请参见官方文档。

对比FishEye

fisheye的入门教程可以参见fish eye入门教程

CodeReview的基本功能上,两者都差不多。甚至reivew的界面设计上都有相似之处。

FishEye的优点,大概是它与Jira等组件结合得比较好吧。毕竟同一家公司的产品。如果对Jira、Confluence等产品使用得比较多的话,相互之间便捷的协作、跳转可以让工作更加方便、快捷。

此外,FishEye支持导出代码评审结果。虽然我没解决导出文件的乱码问题,但人家确实提供了这个功能。导出功能为我们分析代码评审结果和意见提供了很大的便利。

而Upsource的优点优点类似:与同公司的产品结合较好。对,我说的就是Intellij IDEA。对程序员来说,用IDE来处理代码相关工作才是最熟悉、轻松和便捷的。

而Upsource……目前我没有找到如何汇总导出评审结果。这导致我们每次要分析问题,都要手动复制粘贴,非常麻烦

其它方面么……目前对Upsource用得还不深。以后再补充吧。