upsource初探
在JetBrains 的官网上,看到codereview的工具 upsource ,https://www.jetbrains.com/upsource/ 官方的英文文档
来看下博客园上有博主简单的中文介绍
upsource的来源
upsource是JetBrains公司在2014年推出的一款通过浏览器查看代码达到团队协作功能的工具。它适用于需要解决对代码做review以及统计开发人员对代码贡献等问题的团队。(upsource当前面向10用户以内的开发团队是免费的,10用户以上需要购买)
之前在刚刚搭建upsource时,发现国内资料都只是简单介绍,对于其功能介绍及其如何配置都不详细。今天我把关于upsource的功能及它与现有公司使用类似功能工具的对比都介绍下(至于如何配置,将在后期的文章中介绍):
upsource的功能
支持多版本功能库
对于upsource的理解,可以认为它是现有版本管理库(svn,git)的一个插件。利用upsource可以直接读取到版本库里面的版本信息,并且按照其自有的展示方式展示给用户。
现在upsource支持的版本库有:Subversion, Git, Mercurial, Perforce。当前公司只用到前面两种,因此后期会主要介绍前面两种的配置。

工程日志浏览
Upsource集成了日志查看功能,展现方式和git Extensions类似可以看到日志提交各版本合并线路。另外点击备注信息,可以罗列出此次提交下的所有文件,并支持点击文件查看文件变化

关键字查找定位功能
这一个功能我觉得是非常高级的,因为它可以通过关键字快速的搜索在全工程里面匹配的文件及代码。(之前了解到upsource使用了Cassandra,猜测这里就和它有关)

选中文件后,它能快递展示出文件信息并且高亮输入的关键字。另外对于该文件的修改记录等,都可以在右边按钮中查找到。

重构评论及讨论功能
之前在做代码review的时候,经常遇到这样的问题,比如看到某个同事写的代码有问题想马上标注下,此时一个是记录在其他文件中,然后日后来查找,另一个就是直接在代码上修改,但往往这样又会导致代码冲突。
上面两个方法对于查找和代码合并带来了很大的问题,但upsource提供了一种同时解决上面两个问题的方法,直接在文件中评论,但又不影响实际的代码。

如上图,中间黄色区域为开发者之间的评论,讨论情况也可以标记为Resolve和Reply。
文件对比功能
文件对比在很多版本控制的客户端工具中都是存在的,upsource在这里提供的文件对比是不支持直接修改文件里面的内容,而是通过提供文件及时标注的方式处理。

开发贡献分析功能
之前公司没有专门针对开发贡献做专门的统计,upsource提供了一个统计报表,个人觉得只能简单表明开发的量,但对质上的体现还不明显:

upsource属于浏览器模式管理工具,对于客户端而言,只需要浏览器支持就可以正常使用。其中,upsource的评论标注功能是其亮点,标注信息支持@方式。
upsource初探的更多相关文章
- 初探领域驱动设计(2)Repository在DDD中的应用
概述 上一篇我们算是粗略的介绍了一下DDD,我们提到了实体.值类型和领域服务,也稍微讲到了DDD中的分层结构.但这只能算是一个很简单的介绍,并且我们在上篇的末尾还留下了一些问题,其中大家讨论比较多的, ...
- CSharpGL(8)使用3D纹理渲染体数据 (Volume Rendering) 初探
CSharpGL(8)使用3D纹理渲染体数据 (Volume Rendering) 初探 2016-08-13 由于CSharpGL一直在更新,现在这个教程已经不适用最新的代码了.CSharpGL源码 ...
- 从273二手车的M站点初探js模块化编程
前言 这几天在看273M站点时被他们的页面交互方式所吸引,他们的首页是采用三次加载+分页的方式.也就说分为大分页和小分页两种交互.大分页就是通过分页按钮来操作,小分页是通过下拉(向下滑动)时异步加载数 ...
- JavaScript学习(一) —— 环境搭建与JavaScript初探
1.开发环境搭建 本系列教程的开发工具,我们采用HBuilder. 可以去网上下载最新的版本,然后解压一下就能直接用了.学习JavaScript,环境搭建是非常简单的,或者说,只要你有一个浏览器,一个 ...
- .NET文件并发与RabbitMQ(初探RabbitMQ)
本文版权归博客园和作者吴双本人共同所有.欢迎转载,转载和爬虫请注明原文地址:http://www.cnblogs.com/tdws/p/5860668.html 想必MQ这两个字母对于各位前辈们和老司 ...
- svn+teamcity+YouTrack+Upsource搭建—写给明天工作室的小伙伴
首先解释下概念: SVN:Subversion的简称,版本控制系统.采用集中式管理(本地只保留服务器仓储的副本,想要把代码交到服务器或者看提交记录.差异对比就必须得有网络连接) Teamcity:可持 ...
- React Native初探
前言 很久之前就想研究React Native了,但是一直没有落地的机会,我一直认为一个技术要有落地的场景才有研究的意义,刚好最近迎来了新的APP,在可控的范围内,我们可以在上面做任何想做的事情. P ...
- 【手把手教你全文检索】Apache Lucene初探
PS: 苦学一周全文检索,由原来的搜索小白,到初次涉猎,感觉每门技术都博大精深,其中精髓亦是不可一日而语.那小博猪就简单介绍一下这一周的学习历程,仅供各位程序猿们参考,这其中不涉及任何私密话题,因此也 ...
- Key/Value之王Memcached初探:三、Memcached解决Session的分布式存储场景的应用
一.高可用的Session服务器场景简介 1.1 应用服务器的无状态特性 应用层服务器(这里一般指Web服务器)处理网站应用的业务逻辑,应用的一个最显著的特点是:应用的无状态性. PS:提到无状态特性 ...
随机推荐
- [UVA-11100] The Trip
题目大意 大箱子能装小箱子,求在满足最少箱子的情况下,最小化每个箱子中最大的箱子个数. 解析 想到二分枚举箱子数,然后贪心的选择放进箱子的位置. 最优策略一定是将最大的 \(m\) 个先找出来,然后把 ...
- ZOJ 3987 Numbers(Java枚举)
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3987 题意:给出一个数n,现在要将它分为m个数,这m个数相加起来必须等于n ...
- linux服务器安装brook服务端 使用brook客户端
既然你已经找到了此文章,说明已经知道brook的用途了,不做介绍,下面讲安装方法: 连接服务器,随便cd一个安装目录,例如: mkdir brook && cd brook 2.进re ...
- Codeforces 785 D. Anton and School - 2
题目链接:http://codeforces.com/contest/785/problem/D 我们可以枚举分界点,易知分界点左边和右边分别有多少个左括号和右括号,为了不计算重复我们强制要求选择分界 ...
- 一些常见的第三方UI库
第三方UI库 1 bootstrap Bootstrap是Twitter推出的一个用于前端开发的开源工具包.它由Twitter的设计师Mark Otto和Jacob Thornton合作开发,是一个C ...
- 给 vue项目添加ESLint
eslint配置方式有两种: 注释配置:使用js注释来直接嵌入ESLint配置信息到一个文件里 配置文件:使用一个js,JSON或者YAML文件来给整个目录和它的子目录指定配置信息.这些配置可以写在一 ...
- [C#]读取不同版本的excel文件的方法
--------------------------------2007及以上的版本-------------------------------- 测试如下: //DataInterface.Met ...
- Eclipse无法使用springboot2.x
<!-- 阿里云提供的镜像地址 --> <mirror> <id>nexus-aliyun</id> <mirrorOf>*</mir ...
- docker 安装完mysql 后客户端无法访问
1.在虚拟机的centos 中安装 docker 的mysql 镜像. docker run --name mysql01 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=12 ...
- causal snps | causal variants | tensorflow | 神经网络实战 | Data Simulation
先读几篇文章: Interpretation of Association Signals and Identification of Causal Variants from Genome-wide ...