Upsource
一、Upsource简介
Upsource ,这是一个专门为软件开发团队所设计的源代码协作工具。Upsource能够与多种版本控制工具进行集成,包括Git、Mercurial、Subversion或Perforce,开发者可以使用这一工具对已签入的代码进行浏览和审查。
您可以用Upsource做什么:
对同一个代码库的多个修订版本进行浏览,并且通过一个图形化工具显示多个修订版本之间的关系;
对代码变更进行跟踪,包括提交历史、变更差异比较,以及分支与合并的操作;
对团队的代码进行审查,包括代码的讨论、跟踪代码评论以及最终的结论;
IntelliJ的用户在开发Java项目时还能够使用代码检查与遍历功能。
二、功能描述
支持多版本功能库
对于upsource的理解,可以认为它是现有版本管理库(svn,git)的一个插件。利用upsource可以直接读取到版本库里面的版本信息,并且按照其自有的展示方式展示给用户。
现在upsource支持的版本库有:Subversion, Git, Mercurial, Perforce。当前公司只用到前面两种,因此后期会主要介绍前面两种的配置。
工程日志浏览
Upsource集成了日志查看功能,展现方式和git Extensions类似可以看到日志提交各版本合并线路。另外点击备注信息,可以罗列出此次提交下的所有文件,并支持点击文件查看文件变化
关键字查找定位功能
这一个功能我觉得是非常高级的,因为它可以通过关键字快速的搜索在全工程里面匹配的文件及代码。(之前了解到upsource使用了Cassandra,猜测这里就和它有关)
选中文件后,它能快递展示出文件信息并且高亮输入的关键字。另外对于该文件的修改记录等,都可以在右边按钮中查找到。
重构评论及讨论功能
之前在做代码review的时候,经常遇到这样的问题,比如看到某个同事写的代码有问题想马上标注下,此时一个是记录在其他文件中,然后日后来查找,另一个就是直接在代码上修改,但往往这样又会导致代码冲突。
上面两个方法对于查找和代码合并带来了很大的问题,但upsource提供了一种同时解决上面两个问题的方法,直接在文件中评论,但又不影响实际的代码。
如上图,中间黄色区域为开发者之间的评论,讨论情况也可以标记为Resolve和Reply。
文件对比功能
文件对比在很多版本控制的客户端工具中都是存在的,upsource在这里提供的文件对比是不支持直接修改文件里面的内容,而是通过提供文件及时标注的方式处理。
开发贡献分析功能
之前公司没有专门针对开发贡献做专门的统计,upsource提供了一个统计报表,个人觉得只能简单表明开发的量,但对质上的体现还不明显:
三、使用说明
1、登录192.168.1.15:8088访问upsource页面
2、点击loin in 进行注册登录
3、点击工程名进入查看代码和svn更新情况,就可以开始对代码进行review
四、IDE中集成
1.checkout项目
2.安装插件
JetBrains已经开发了Upsource的相关插件,左上角点击Appcode->Preference->Plugins->Install JetBrains plugins,搜索Upsource,找到Upsource Integration安装并重启IDE:
3.插件配置
checkout项目后,IDE右下角你回发现Upsource的小图片,点击:
配置好Upsource的路径,填写为之前设置好的url,即:http://192.168.1.15:8088
4.关联登录
点击“OK”后,会自动进入网页中,需要关联登录,入住对应的账号登录并接收即可,最后关闭后即可和IDE相关联了。
最后成功后的结果如下:
可以看到,左下角选择器多出来了一个Reviews,右下角的Upsource的图标已经点亮。
五、Upsource的workflow
1、developer首先在代码仓库中提交代码
2、reviewer在upsource中创建一个review,然后对修改的代码部分提交comments
3、create review
4、developer看到后,回复该review
5、reviewer可以选择是否接受
六、补充说明
1、设置用户/组/角色权限
代码下载完成之后,就开始设置用户权限
点击Users进行用户/组/角色权限设置,Upsource安装完成之后默认添加了admin和guest用户。
设置用户时可以指定用户组,每个项目有三个用户组,分别为Code Viewers、Developers、Project Admin。同一个用户可以拥有多个用户组。
角色权限可以设置全局角色和对应某个项目的角色,总共有五种,分别是:Code Viewer、Developer、Observer、Project Admin、System Admin,每个角色所拥有的权限都可以根据自己需求灵活进行配置
这里我们为cms项目添加两个用户:Lucy为Project Admin角色,tom为Developer角色
2、代码审查(Code Review)
当开发者tom提交完代码之后,项目管理员Lucy登录到Upsource,可以看到所有项目的索引,每个项目都有对应一个特定的VCS仓库。
单击项目名称列出每一次提交的版本,每一次提交的代码罗列,这里你可以浏览代码,创建代码审核,分支列表,分支与分支代码比较,代码提交代码审核分析(可视化图表)……等等你想要的功能。
拖动滚动条,将光标移动到需要进行审核的修订版本上,点击Create review创建一次新的代码审查
代码对比
点击左边修订版中提交的文件名显示嵌入差异:
点击Side-by-side diff可以查看整个文件在提交前后的变化
关于代码评论
无论你是作为一个author、reviewer或watcher,你都可以发表评论,发表的评论所有参与的人都可以看得见 有三种类型的评论:
审查意见:这种类型的评论是不是捆绑到任何代码特定文件或部分。
行级评论:这种类型的注释与特定的代码行相关联。
代码块评论:这种类型的评论是为了找出一个特定的代码片段中的一个文件进行审查。
行级评论
代码块评论
参与评论
Lucy进行评论后,开发者tom会收到邮件通知,登录tom账户,可以清晰的看到Lucy的评论的代码,可以进行回复。
当点击Accept时,表示接受此次修订,此次审查被视为完成。
Upsource分析功能
Upsource提供了例如代码提交分析、代码审查分析等功能。