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. java定时调度器解决方案分类及特性介绍

    什么是定时调度器? 我们知道程序的运行要么是由事件触发的,而这种事件的触发源头往往是用户通过ui交互操作层层传递过来的:但是我们知道还有另外一种由机器系统时间触发的程序运行场景.大家想想是否遇到或者听 ...

  2. 关于Linux网卡调优之:RPS (Receive Packet Steering)

    昨天在查LVS调度均衡性问题时,最终确定是 persistence_timeout 参数会使用IP哈希.目的是为了保证长连接,即一定时间内访问到的是同一台机器.而我们内部系统,由于出口IP相对单一,所 ...

  3. 1.javascript语言精粹笔记

    一.注释 /**/ // 采用这个 二.标识符 标识符被用于语句.变量.参数.属性名.运算符和标记三.数字 javascript只有一个单一的数字模型.它在内部被表示64位的浮点数. 没有分离出整形, ...

  4. web.xml文件中<mime-mapping>

    http://blog.csdn.net/sccemstanford/article/details/9064155 ————————————————————————————————————————— ...

  5. 关于javascript遍历对象

    1:遍历对象属性var obj={a:'aa',b:'bb'} for(var i in obj) { alert(i); //输出 a b } var obj={'a':'aa','b':'bb'} ...

  6. php -- PHP实现点击a标签的href做链接时,直接保存文件(任何类型),而不是通过浏览器直接打开下载的文件

    之前做项目遇到这样一个问题,就是在php环境下,用a标签的href链接到一个资源,比如是mp3或者lrc文件时,点击之后不是出现保存文件的提示,而是调用本地程序打开文件或者直接在浏览器上解析.网上说可 ...

  7. 【BZOJ】1685: [Usaco2005 Oct]Allowance 津贴(贪心)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1685 由于每个小的都能整除大的,那么我们在取完大的以后(不超过c)后,再取一个最小的数来补充,可以证 ...

  8. js中的问题(this)(遍历对象中的属性)

    for (var i in this) { if (this[i] == null) this[i] = "";//属性如果为null,则默认为"";      ...

  9. ThinkPHP项目笔记之RBAC(权限相关视频讲解篇

    感谢互联网,只要你愿意找,没有找不到的免费资源 网址:http://www.studyfox.cn/143.html

  10. ulimit命令学习

    通过ulimit -n命令可以查看linux系统里打开文件描述符的最大值,一般缺省值是1024,对一台繁忙的服务器来说,这个值偏小,所以有必要重新设置linux系统里打开文件描述符的最大值.那么应该在 ...