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. Spider Studio 界面功能布局

    SS是Spider Studio (采集工作站) 的简称, 这是由GDT团队开发的一款互联网数据采集开发工具. 它以浏览器为基础, 运用JQuery技术, 结合脚本化C#的强大功能, 能够轻松解决各类 ...

  2. yum whatprovides host 根据命令查找包

    [root@Cobbler ~]# yum whatprovides host Loaded plugins: fastestmirror Loading mirror speeds from cac ...

  3. Servlet开发-----基础及MVC设计模式

    一.Servlet介绍   Servlet本身只是普通的Java类,只有当容器为他创建了ServletConfig和ServletContext时才成为了一个Servlet:   Servlet简单的 ...

  4. 假设A.jsp内设定一个<jsp:useBean>元素:

    假设A.jsp内设定一个<jsp:useBean>元素: <jsp:useBean id=”bean1” class=”myBean” /> 下列哪一个为真?(选择1项) A. ...

  5. 修改Apache访问权限

    You don't have permission to access / on this server.错误,居然说我此台服务器上无权限,ok解决办法如下: 找到:apache文件,进入conf文件 ...

  6. 《Programming with Objective-C》第五章 Customizing Existing Classes

    1.分类里面只新增函数,不要新增变量:虽然新增是语法合法的,但是编译器并不会为你的property合成相应的成员变量.setter和getter Categories can be used to d ...

  7. django 模型中的计算字段

    models.py class Person(models.Model): family_name= models.CharField(max_length=20, verbose_name='姓') ...

  8. 复习及总结--.Net线程篇(1)

    老是没耐心写这些东西,最近想想也工作两年了,该对自己的东西做个整理了,不知道这次能坚持写几篇,总得来说尽量督促自己吧 言归正传,.net中的多线程主要可以使用两种方法进行调用 1,异步调用 2,Thr ...

  9. 【黑金原创教程】【TimeQuest】【第三章】TimeQuest 扫盲文

    声明:本文为黑金动力社区(http://www.heijin.org)原创教程,如需转载请注明出处,谢谢! 黑金动力社区2013年原创教程连载计划: http://www.cnblogs.com/al ...

  10. Python全栈day28(上下文管理)

    我们知道在操作文件对象的时候可以这么写 with open('a.txt',''r) as f: 代码 上述叫做上下文管理协议,即with语句,为了让一个对象兼容with语句,必须在这个对象的类中声明 ...