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提供了例如代码提交分析、代码审查分析等功能。

 

Upsource——对已签入的代码进行分享、讨论和审查代码的更多相关文章

  1. 重新拾取:TFS2017钉钉机器人源代码签入通知

    http://www.cnblogs.com/79039535/p/9316791.html 现在很多公司办公都使用钉钉打卡签到,于是鉴于公司也使用钉钉就打算用钉钉来做一个源代码签入通知. 首先先去打 ...

  2. TFS签入代码时,自动修改工作项的状态为“已解决”

    Visual Studio中有一个很酷的功能,就是签入代码到TFS库时,可以关联相应的工作项,实现代码与工作项(需求.任务.Bug等)的关联,从而实现代码的跟踪. 在关联工作项的过程中,如果工作项具备 ...

  3. [BI项目记]-搭建代码管理环境之签入代码

    此篇主要介绍如何基于TFS环境创建进行BI项目最简单的代码签入和签出工作. 首先介绍BI项目中的SSAS项目.SSAS项目主要包含Cube多维数据集和数据挖掘模型,是在微软BI产品体系中重要的一个组件 ...

  4. TFS代码签入指导

    1. 如果文件没有被放入到TFS中, 那么它是不存在的. 这一点是最好被理解的, 如果你的代码没有被签入到代码管理中,那么就不可能被团队的其他人获取的得到. 具体如何将文件纳入到TFS中请参考 Pla ...

  5. teamfoundationserver2010之使用vs2010&&vs2013创建修改签入签出提交代码等操作

    好久之前就在个人的电脑上装了vs2013,看到原生支持html5和css3,前端开发还是挺不错的 而公司开发一直用着vs2010,真是羡慕嫉妒恨啊... 于是乎就有了今天的测试 使用工具 teamfo ...

  6. 3. 上网调查一下目前流行的源程序版本管理软件和项目管理软件都有哪些, 各有什么优缺点? (提示:搜索一下Microsoft TFS、GitHub、Trac、Bugzilla、Rationale,Apple XCode),请用一个实际的源代码管理工具来建立源代码仓库,并签入/签出代码。

    上网调查一下目前流行的源程序版本管理软件和项目管理软件都有哪些, 各有什么优缺点? ---------------答题者:徐潇瑞 (1)Microsoft TFS的优缺点: 优点:是对敏捷,msf,c ...

  7. TFS签入签出规范

    TFS签入签出规范1)开发平台的约定a)开发操作系统环境和最终用户使用环境 包含Service Pack版本号开发环境 Windows2008SP1 Windows7用户环境 Windows2008S ...

  8. 配置TortoiseSVN客户端, 强制签入前加注释

    正如上篇提到, 总有一些人在签入代码到SVN前没有加注释, 然后, 像这样: 鬼才知道改了什么东西. ①有些人可能就是没有写注释的习惯, ②有些人可能是忘记写注释 && SVN服务端和 ...

  9. vs签入签出--TFS进行源代码管理

    工作项是项目管理的基本元素.工作项说明了要做什么事(例如任务),出了什么问题(例如Bug),除此之外,我们还需要将程序一行一行地写出来,TFS的源代码管理控制系统,就能帮助我们管理这一行行的代码,一个 ...

随机推荐

  1. Office Web App2013 在线查看PDF文件

    经常会有客户问,在SharePoint中,如何在浏览器中查看与编辑文档,通常给出的解决方案是集成Office Web App. 而在实际应用过程中,客户通常会要求实现PDF文件在线查看,对于PDF文件 ...

  2. Sql Server 语句集合

    -- 判断数据库表是否存在 select count(*) from sysobjects where id=OBJECT_ID('tableName'); -- 返回 1存在,0不存在 -- 判断表 ...

  3. 一起talk C栗子吧(第十回:C语言实例--最小公倍数)

    各位看官们,大家好.从今天開始,我们讲大型章回体科技小说 :C栗子.也就是C语言实例. 闲话休提, 言归正转.让我们一起talk C栗子吧! 看官们,上一回中咱们说的是最大公约数的样例,这一回咱们说的 ...

  4. PPT如何一页多张打印且铺满整个页面

    最近由于工作需要,有些ppt材料想打印出来学习,但是ppt页数较多,ppt单页打印有些浪费纸张,而且也不能拿到外面打印店去打印,所以只能自己动手设置一页多张打印,并且最后双面打印,这样就做够节省纸张了 ...

  5. (转)有关Queue队列

    Queue Queue是python标准库中的线程安全的队列(FIFO)实现,提供了一个适用于多线程编程的先进先出的数据结构,即队列,用来在生产者和消费者线程之间的信息传递 基本FIFO队列 clas ...

  6. jquery后加Dom绑定事件

    $('#musicCategoryListContainer').on('click', '.musicCategoryItem', function () { $(this).siblings(). ...

  7. 自己动手写CPU之第九阶段(2)——载入存储指令说明2(lwl、lwr)

    将陆续上传新书<自己动手写CPU>.今天是第38篇,我尽量每周四篇,可是近期已经非常久没有实现这个目标了.一直都有事,不好意思哈. 开展晒书评送书活动,在q=%E4%BA%9A%E9%A9 ...

  8. CodeForces 558C Amr and Chemistry (位运算,数论,规律,枚举)

    Codeforces 558C 题意:给n个数字,对每一个数字能够进行两种操作:num*2与num/2(向下取整),求:让n个数相等最少须要操作多少次. 分析: 计算每一个数的二进制公共前缀. 枚举法 ...

  9. sys.argv 详细用法

    sys.argv 用于获取命令行参数,用法如下: [root@localhost ~]$ cat 1.py #!/usr/bin/env python #-*- coding:utf-8 -*- im ...

  10. shell脚本学习总结02--数组

    bash同时支持普通数组个关联数组,普通数组只能使用整数作为数组的索引,关联数组可以使用字符串作为数组的索引. 数组的定义方法: 在单行中使用一列值定义一个数组 [root@new ~]# array ...