svn管理工具_主流代码管理工具深度评测

eb3dbbd51f04ea16a265fdeb35208c2f.png

引言

作为有十几年IT行业代码的从业人员,经历过代码管理工具的变迁,从早期的微软的Source Code Control,到TFS,再到SVN,再到现在的Git。我深知代码管理工具是代码开发过程中非常重要的工具。市场上的代码管理工具有很多,近期正好团队内部在选型,我对诸如Github、Coding、阿里云效、码云、Azure Devops等工具进行了试用评测。想着很多小伙伴可能也有工具选型方面的痛苦,就大概整理了一下发出来,帮助大家结合自己的实际情况,选择合适自己的工具,节约大家的时间和精力。

阅读本文共需要10分钟左右,当然你可以选择只阅读“长话短说”总结部分。

长话短说

首先介绍一下Github,相信所有编程的朋友都不默认,它是世界上最流程的开源代码库,基于git,现在被微软收购。个人觉得Github在所有工具中是最优秀的,这可能是有点先入为主。

然后介绍一下Coding,它提供了代码托管、敏捷开发协同及DevOps工具链,让团队在云端高效协同,在开发协作过程中享受极致体验,提升软件交付质量与速度。现在有腾讯的投资。它支持Git和SVN。

再下来介绍一下阿里云效,它已经集成在阿里云中,属于阿里系的产品,浓浓的阿里系风格。它支持Git和SVN。

再下来介绍一下码云,它是http://OSCHINA.NET推出的代码托管平台,支持Git和SVN,提供免费的私有仓库托管。据说目前有超过500万的开发者选择码云。号称是中国的Github。

最后介绍一下Azure Devops,它是微软Azure云的产品,属于微软的风格。虽然微软收购了Github,但是Azure Devops长得和Github真的不太像,感觉不是一类的。它支持Git和微软自己的TFS。但TFS实在已经是末日黄花,即将逝去。

原本还想试用华为软开云的,结果发现是猪八戒网的,不知道是不是华为收购投资的。发现注册及其困难,直接放弃。最近华为是要风得风,要雨得雨,各个领域都可以看到华为的身影,但确不是每个领域都可以做得优秀。

评分表

f8d6bea26ef6f83c5a3a6d5f8dbfa9c8.png

功能方面的对比

主界面

Github

a9cdd67cbce48991a9edf5b7c76f6932.png

Coding

07fd05dae957d09b9da9bd92cbf99b5a.png

阿里云效

8df9551fecb81e49b037a317a469cc0f.png

码云

147b5d5800bf1eb7537a39ce9a33c061.png

Azure Devops

88bbc9ac70376e8e7049a40a5944145d.png

比较这些产品的主界面,是不是发现码云的主界面和Github的主界面非常像,不愧是中国版的Github,这点就值得加分。其他产品的排版都很雷同,感觉有点不伦不类,特别是微软的Azure Devops,真的很失望。Coding算中规中矩,开始使用Coding还有点失望,但是比较了阿里云效,Azure Devops后,就会发现还是不错的。

安全性

代码管理工具,安全是非常重要的,所以我们看看他们的各自的登录。

首先是Github,用户名加密码即可,这种会有撞库的风险,起码应该有双因素认证,这点Github真的做得比较差。

b9c8901fc59a5d4efec80228a92d1ae8.png

然后看Coding,看界面就是用户名和密码,一样的特性,差评

89625da3b4431afad80861f996b2961b.png

但Coding隐藏支持MFA,如果开启MFA后,登录后就会提示输入MFA的6位Code,这样是非常安全的。这个要加分。

dedfe06ae1f73f086e69e2af0c14f23b.png

接着看阿里云效,支持扫码登录和账号登录。扫描登录是需要支付宝或者钉钉扫描认证的,非常安全。但是账号认证就是直接用户名加密码,这种方式有被撞库的风险。

44800af420ef67a24e72a40625d3d65b.png

再看码云,简单的用户名加密码,这种方式是不安全的。

72caca401e4e99aa6a90fef2ebd9939b.png

最后看Azure DevOps,集成的Azure的认证,看起来是用户名和密码,但后台接管的是零信任模型,必要时会要求你输入手机验证码的,是支持双因素的,这个方式是安全的,而且是经过市场检验的。

e8587c204fdea114dc06226b60b13c68.png

所以以上产品,登录模块的安全性最好的是Azure DevOps和Coding,然后是阿里云效,阿里云效是否集成了零信任模型不知道,这个经验不会很多。最差的是Github和码云。

创建新项目

首先是Github,它支持Private和Public两种模式,默认是Public,这个就不是一个很安全的做法,应该默认是Private比较好。可以选择是否生成初始化的README文件,这个很好。然后支持.gitignore文件,而且它显示支持None,并且默认是None。这个就不会出现选择了一个模式,如Python,然后又想清理这个选择时发现不能清理的尴尬。另外它还支持选择License,这个开源软件必须的。

3dd5803f3b2147a4171329a7e9a7bf61.png

接着是Coding,没有这个Public/Private的选择项,但有个很小的复选框选择是否公开代码,这个设计就觉得有点很奇怪,更喜欢Github的样式,然后它支持Git和SVN,你可以选择任意一个,默认是Git。然后是预置代码模板初始化仓库和启动ReadMe.md文件初始化项目二选一,但是是奇葩的复选框。这个时候是不是应该是圆点的单选框比较好。然后都没有默认预置None的选择项,选择之后想清除你会发现找不到地方,这个是非常不人性化的。

56932eb96c569a023ae02fceed56da6e.png

接着是阿里云效,支持私有和企业内公开两种,不支持完全公开。默认选择私有,这个做法是安全的。支持是否创建README.md文件,但只有两个选择内置新手引导和空模板,默认是空模板,没有语言选择,没有License,非常简单的选择。但我更喜欢Github的可定制化。

db5481112df6fe214b3d7fa94a00f191.png

接着是码云,样式与Github高度一致,也是支持Private和Public两种模式,默认是Private,这点比Github安全。也支持语言和.gitignore的样式,但是没有None选项,默认是空,一旦选择了也是遇到不能清除的尴尬。接着又多了初始化README,初始化issue template和初始化Pull Request Template的选项,感觉有点多余。还有一个选择Branch的模式,也是感觉很复杂,不太实用。

96e75aa944ef7a1a86568423c46036be.png

最后是Azure Devops,微软的功能好像更加简单。首先是让你选择Private还是Public,默认是Private,这个安全不错。接着在高级隐藏着两个选择项,一个是Version Control的选项,默认是Git的,你还可以选择TFS。TFS已经慢慢被淘汰了。另一项是工作流样式,默认是Basic,其他没有测试。

6bb29c196ba66e438c20c0f09d3fa432.png

比较以上几种软件,Github是最好的,但是Github默认选择Public是安全硬伤。码云也不错,基本和Github一样,而且默认选择Private,这个是非常好。但是选项没有内置None,这个是Bug。其他的不说了,希望能够向Github和码云学习。

代码仓库的访问

所有的平台都支持Https和SSH的两种模式,我更喜欢SSH这个模式,不需要输入代码,而且私钥更加安全。

先看Github的,非常简单的Title和Key,不支持过期时间设置。

eb4d240548a7796e5c28f30f7de356b6.png

然后看Coding,除了公钥名称和公钥内容外,支持公钥有效期,这个安全性更好。

97e621c8d9fd949d5af4e5a449a374f7.png

接着看阿里云效,也是简单的标题和密钥,而且和顺序颠倒,看起来很别扭。

4d94987226e7ade06d7bf98ddf0f6ea8.png

接着看码云,简单的Titile和Key,与Github一样,不支持过期时间。

359d9e9bf77217351d8d67082b472981.png

最后看Azure Devops,简单的Name和Key,不支持过期时间。

a7087ef2baf1d8a5d5d699d8ba7a4368.png

比较上述产品,Coding的SSH Key设置支持过期时间,更加安全,其他的都差不多,但是阿里云效的界面最丑陋。

代码编辑和浏览

实际上很少有开发人员愿意在Github等平台上直接编辑和浏览代码的,更愿意使用专业的VSCode等工具。所以这个功能我觉得哪个平台说它做得多么的优秀都是徒劳的。因为与开发者的习惯不一致。因为这几个平台都支持Git,都可以很好地与VSCode集成,所以没有太多要说的。

代码搜索

这个是Github一个非常好的功能。先看Github,输入文件名或者代码后,就可以检索出相关内容

3ec40e98060a09f81da0ab0aa584604e.png

接着看Coding,很遗憾,Coding没有这个功能。

再接着看阿里云效,可以搜索对应的文件名,比Github差远了。

eb2587fa1bed6b899469d80df1ea55d2.png

接着看码云,也没有发现这个功能,非常遗憾。

最后看Azure Devops,有类似功能但居然搜索不到结果,差评。

b90654ebc8bb29f3c4496174901bdd4f.png

综上比较,Github是最优秀的,阿里云效有相关的功能,但是效果一般。Azure Devops功能就不能用,不知道是什么原因,其他的就没有这个功能。我个人觉得这个功能是非常有用的。

删除项目

各个产品的删除Project的功能都比较正常。Coding的删除Project功能需要进行MFA认证,比较安全,这点值得推荐。安全性上,Coding是做得不错的,第一个实现了MFA的认证。

代码质量分析

现在随着SSDLC和DevSecOps的深入人心,大家更愿意将安全左移,根据IBM的理论,问题越早发现越早修复,代价就越小。所以代码质量分析就很重要。

首先看Github,并没有集成代码分析功能。

接着看Coding,它在代码仓库的页签下面专门有个代码分析的页签。代码分析支持多个参数,如代码问题、圈复杂度、代码行数等指标,支持增量扫描和全量扫描两种模式,支持多种语言。

755fabc5c4918430acda9bfdc70954b9.png

新建代码分析支持新分支或者新代码库。然后选择新代码库后,出现这个界面,要求你自己选择代码的语言,即系统不能自动识别你使用了什么代码,这个和专业的代码扫描工具Checkmarx还是有差距。

c79559167fa0a7e89e38728184992414.png

阿里云效自动集成了安全扫描功能,不需要额外配置,主要支持两种扫描:敏感信息检测和依赖包漏洞检测。

d98f0193927a61db642354fc6b047707.png

我加了一个Password的代码并且打印出来,但是敏感信息中并没有检测出来,所以我也很怀疑这个检测的结果。

码云,不支持代码分析这个功能。 Azure Devops,也不支持代码分析这个功能。

最后总结一下,相对而言,Coding的代码分析功能更全面,但Coding没有集成依赖包漏洞检测,即通常说的OSA分析。而阿里云效支持OSA分析,但实际上没有代码静态分析,只能一个敏感信息检测。而Github、码云、Azure Devops没有这个功能。

代码容量

Github是免费的代码管理平台,容量是无限大的,从没有听过有限制。Coding是以团队大小限制的,代码容量也没有限制,和Github一样。阿里云效的容量也没有限制。码云的代码容量也是没有限制,最后看Azure DevOps,代码的容量也没有限制。所以五个平台对于开发者都是友好的,代码容量都是无限制的。

与DevOps流程的集成

Github是个纯粹的代码管理平台,并没有直接与其他DevOps流程进行整合。但相信其他平台也很容易整合Github。

Coding,本身就是DevOps的平台,支持持续集成和持续部署。其中持续集成包括构建计划和构建节点。而持续部署支持Kubernetes、云服务器和静态网站。这些功能部分免费,绝对部分是要收费的。不过你选择项目的时候,必须是DevOps项目,而不是纯粹的代码托管项目。

83311b23baeb0f5b612ac39c4a68cc25.png

阿里云效,没有看到有直接持续集成和持续部署的页面,估计会和阿里云其他组件进行集成,这里不进行分析。

码云,也集成了DevOps功能,包括Baidu云和Jenkins For Gitee两种选择。

477f3e3c7d7780271a9003f29941796c.png

Azure DevOps通过Pipeline也集成部分DevOps功能

ca362742d818ff122634701d4eefbe7f.png

总上所述,Coding,码云,Azure DevOps集成或者部分集成了DevOps功能,阿里云效和Github没有直接集成。Coding更加直接,直接看到持续集成和持续部署,而码云感觉是依赖于百度云或者Jenkins进行集成,Azure靠自己的Pipeline集成,没有这么直接。

国内代码拉取速度

由于众所周知的因素,一些国外协作类工具的访问速度非常不乐观,如果你不希望团队浪费时间在等待页面加载,等待代码提交/拉取的漫漫长夜中,这将是你首要需要考量的因素。

这点上,Coding,码云,阿里云效都部署在国内,速度明显占优势。而Github和Azure Devops都差强人意。

总体的评测结果

如果把测评表5星换算为5分,没有此功能为0分,进行加权平均后得到各个产品的得分。

c261b624abdd0386ad0c35a8f887570f.png

得分最高的Coding,3.36分,其次是码云,2.8分,接着是阿里云效,2.45分,接着是Github,2.45分,最差是Azure Devops,2.27分。

如果去掉国内拉取代码速度(不可控因素)和仓库容量,计算结果如下:

c619333de752ad3e3936ba2f2796a4bc.png

其中排名第一是Coding,3分,然后码云2.56分,接着是Github,2.33分,再接着是微软2.11分,最差是阿里云效,2分。

如果你对安全很重视,那可以参考这个表格

3738911bad4a285bfeaaa21fb30c3fc4.png

其中排名第一是Coding,3.8分,然后是码云2.8分,然后阿里云效和Azure DevOps,并列2.6分,最差是Github,2.2分。所以Github只是最流行的公开仓库,其安全性并不是强项。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/537241.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

我的2018

写在开始 2018年以飞快的速度临近尾声了,只感慨时间过得真快! 这一年过得算是平平淡淡,没有比较特别的地方。 工作 从去年8月来到这公司,是个做旅游产品的互联网公司,平时里做的事可以说是很简单,我只能说&…

程序员笔试面试后上机_hcie面试有哪些要注意的事项?

大家都知道,华为认证hcie考试分为三个部分,分别是笔试、lab实验和面试。其中,考生讨论得最多的就是面试部分,因为面试不同于笔试和lab实验,自己埋头答题和操作就行,面试要面对考官,考核的东西非…

【Infragistics教程】在javascript构造函数中创建基本继承

2019独角兽企业重金招聘Python工程师标准>>> 【下载Infragistics Ultimate最新版本】 用javascript创建对象有四种方法。具体如下: 对象作为文本构造函数调用模式创建()方法在ES6之后使用类继承的实现因对象创建方法而异。本文将解…

switch芯片和phy芯片的区别_感应式芯片卡CPU卡的FM1208-9和FM1208-10有什么区别,你知道吗?...

感应式CPU卡是目前芯片卡中安全系统较高的芯片,使用范围也较为广泛,但是这款CPU分为FM1208-9和FM1208-10,那你们知道分别代表什么意思呢?他们之间有什么不同呢?CPU白卡FM是什么?首先,我们来说下…

每次登陆都要滑动验证_湖人队冠军成员卡鲁索很吃香:每次谈判都有N支球队点名要他...

10月24日NBA直播台讯:洛杉矶湖人队助理教练迈克-彭伯西在接受媒体采访时透露,湖人队替补控球后卫卡鲁索目前在联盟中很吃香。湖人队每次进行交易谈判时,对方球队都点名想要卡鲁索。彭伯西表示:“每一次我们在休赛期或者交易截止日…

MySQL在DOS指令里面的使用以及增删改查的使用

本人的第一条博客,选中我的电脑单机右键,点开管理,选中服务找到MySQL57.启动该服务。回退至桌面,按住winR 输入cmd打开DOS指令的窗口。 在窗口输入: mysql -h localhost -u root -p 显示password输入提示:表示已经…

安卓应用用户数据_用户指标数据应用

一、如何理解数据用户数据:gender:性别、 birthday:出生日期行为数据:user_id:用户id、auction_id:购买行为编号、buy_mount:购买数量、day:购买时间商品数据:cat_id:商品种类ID、cat1:商品类别、property:商品属性二、用户数据指标1.用户数据…

webgis从基础到开发实践_开源WebGIS教程系列——11.1 GISLite 的开发背景与设计

地理信息门户可以帮助人们更容易地发现、访问和使用地理空间信息, 是地理信息发布、服务和共享的重要环节。许多国家都很重视地理信息门户的 建设,把它作为国家空间数据基础设施(spatial data infrastructure,SDI)的重要组成部分。GISLite 是…

Oracle数据库及在DOS命令下面的简单操作

在Oracle数据库注释用--表明为注释,但以下用//或--代表解释;数据库不怎么区分大小写; 先说说一些简单Oracle数据库操作的语句: 使用语句创建普通用户: Create user username identified by password; //创建普通用户 Grant reso…

CSS属性(display)

1.display属性 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><title>08display属性</title><style>.c1 {background-color: red;/*display: none; !* 让其在页面上不显示 *!*//*display: i…

产品发布系统_【产品发布】第3期|阀门遥控系统

更多精彩&#xff0c;请点击上方蓝字关注我们&#xff01;常熟瑞特电气股份有限公司的阀门遥控系统是一款经典的产品线&#xff0c;包括了全系列的液压执行器&#xff0c;电液执行器&#xff0c;微型动力单元&#xff0c;液压动力泵站&#xff0c;液压电磁阀箱等产品。阀门遥控…

大数据就业前景,分析的太到位了

大数据广泛应用于电网运行、经营管理及优质服务等各大领域&#xff0c;并正在改变着各行各业&#xff0c;也引领了大数据人才的变革。大数据就业前景怎么样&#xff1f;这对于在就业迷途中的我们是一个很重要的信息。 随着大数据时代的到来【这次国家教育部也改革动真格了】&am…

多麦克风做拾音的波束_麦克风丨人声应该用动圈话筒还是电容话筒?

无论是在您最喜欢的乐队的纪录片中&#xff0c;还是在电影中那些有关录音棚里的场景中&#xff0c;似乎都存在着一个共同的主题&#xff0c;那就是&#xff1a;歌手们都在使用大振膜的电容麦克风进行录音。我知道人们应该从别人的经验中汲取精华&#xff0c;事半功倍。但是我并…

java框架mybatis配置文件总结一

先新建个java EE的项目 该配置文件必须在src的目录下面&#xff0c; 新建一个xml 文件&#xff1a; 建完后发现它会自动建在web目录下面&#xff0c;我们把这个文件移到src目录下面&#xff1a; &#xff08;注&#xff1a;对了&#xff0c;该文件的编码最好用utf-8的no bom,…

测试:脱离VS2010使用自动化测试时出现 6DA215C2-D80D-42F2-A514-B44A16DCBAAA 错误

在前一系列IronRuby中一直是围绕这UI自动化测试来写的&#xff0c;今天基本测试框架完成了&#xff0c;测试人员没有安装VS2010&#xff0c;不知道能否跑&#xff0c;所以就在测试人员机器上跑跑看&#xff0c;但是问题就出现了 现象 运行run.bat跑单元测试时&#xff0c;出现以…

Linux的远程连接及Linux系统下Tomcat部署

Linux的远程需要用的软件有Xshell&#xff0c;Xftp 本人使用VMware12Pro虚拟机&#xff0c;Linux系统为CentOS7&#xff0c;使用局域网进行远程连接 Xshell和Xftp没有安装的话可以取官网下载&#xff0c;但Xshell需要验证信息&#xff0c;所以也可以去360电脑软件下载 在VMw…

uniapp图标_uniapp扩展自定义uniIcon组件图标

1、访问Iconfont-阿里巴巴矢量图标库&#xff0c;下载自己想要的图片&#xff0c;下载svg格式备用2、通过百度字体编辑器打开本地最新的uni.ttf文件(http://fontstore.baidu.com/static/editor/index.html#)&#xff0c;打开之后可以看到所有的uni所有图标都在里面3、导入第一步…

Spring Boot 日志的使用及logback.xml的使用

当前是市场上使用的日志框架有很多&#xff0c;比如&#xff1a;JUL、JCL、Jboss-logging、logback、log4j、slf4j....等等&#xff1b; 但是日志主要分为两类&#xff0c;日志门面和日志实现两类&#xff1b;日志门面可以说是日志框架的抽象层&#xff0c;主要实现是的日志实…

MongoDB数据库的迁移

最近公司开始要换服务器啦&#xff0c;MongoDB上面的数据又得迁移&#xff0c;还是记录一下比较好。 1&#xff09;、将MongoDB的压缩包解压至相对应的路径(压缩文件在本地服务器的地址192.168.0.22的/opt/zip文件下面) 2&#xff09;、配置好mongodb.conf文件&#xff0c;配…

excel vba 如何将日期周几转换成文字_这5个超实用的Excel技巧,让你的办公效率更高...

导读&#xff1a;对于办公职员来说&#xff0c;Excel是几乎每天都会接触的办公软件。在Excel中&#xff0c;有非常多的小技巧&#xff0c;学习这些小技巧需要不断的积累和应用&#xff0c;今天指北针就来给大家分享5个超实用的Excel技巧&#xff0c;让办公变得更加有效率。文/芒…