深圳幻海软件技术有限公司 欢迎您!

激发创造力:CodeArts Repo带你领略高效代码协同开发之道

2023-09-05

一、代码托管发展史  版本控制系统发展史简单概括经历了三代,下面给大家简单介绍一下:1、第一代  无网络部署,一次只能操作一个文件,基于同步锁阻塞机制,典型的产品:RCS、SCCS2、第二代  集中式网络部署,一次可以操作多个文件,支持并发

一、代码托管发展史  

版本控制系统发展史简单概括经历了三代,下面给大家简单介绍一下:

1、第一代  

无网络部署,一次只能操作一个文件,基于同步锁阻塞机制,典型的产品:RCS、SCCS

2、第二代  

集中式网络部署,一次可以操作多个文件,支持并发操作不过需要先本地合并,然后提交到版本库,典型的产品:CVS、Subversion、SourceSafe、微软的TFS版本控制系统

3、第三代  

分布式网络部署,基于变更集的方式操作多个文件,支持并发,需要先提交,然后再合并到版本库,典型的产品:Git、Mercurial、Bazaar。

其中第三代是以Git为典型代表的分布式版本控制系统(Distributed Version Control System),Git诞生于2002年,由Linux之父Linus Torvalds带领Linux开源社区开发完成。初衷是用其管理Linux内核的庞大的开源代码,后续被GitHub、Gitlab等国际开源软件发扬光大,目前被大多数开源项目和企业项目所使用。Git属于当前代码托管的主流技术。

二、CodeArts Repo 介绍  

CodeArts Repo(前身CodeHub) 是华为全栈自研的代码托管服务平台,它基于Git提供分布式代码管理和协同开发能力。提供了成员管理、权限控制、代码托管、代码检查、代码审核、代码追溯、CI/CD集成等实用功能,助力不同规模企业提升研发质量和研发效率。

三、CodeArts Repo 功能架构  

1、研发协同  

单仓开发协同:代码浏览、合并请求、代码检视、文件搜索、保护分支、合入门禁(代码合并检查机制)

多仓开发协同:多仓检视、Change-id、多仓提交、挑单合入、原子合入、细粒度权限。

2、代码管理功能  

  • 仓库&分支管理:仓库管理、分支管理、tag管理、历史管理
  • 组织权限管理:成员管理、角色管理、权限管理、组织管理
  • 检视&门禁:文件对比、门禁判断、评论、代码审核
  • 系统集成:需求系统、缺陷系统、CI/CD、自定义扩展

3、代码存储特性  

  • 稳定性:多中心、容灾、多活、容器化部署、弹性化伸缩。
  • 性能:多副本、分布式数据库、分布式缓存、分布式部署。
  • 安全:漏洞感知、智能监控、防篡改、加密存储、阻断隔离、最小权限、态势感知、攻击探测。

四、CodeArts Repo 技术能力  

  • 对外接口:支持SSh/HTTPS、Web Portal、APIs、WebHooks Stream event。
  • 运维监控:现网告警、现网拔测、API监控、全链路监控、存储带宽监控、流量监控、容量监控、升级运维、异常访问监控。

五、华为云代码托管技术发展历程  

  • 2010:预研代码仓技术、选型。
  • 2013:基于Gitlab改造、完成华为代码仓上线。
  • 2019:完成自研、自主可控代码仓上线。
  • 2020:完成华为内部所有代码仓统一管理。
  • 2022:支撑20万研发人员使用的成熟CodeArts Repo代码托管平台完成。

六、CodeArts Repo使用场景介绍  

1、仓库管理员  

  • 活动:在项目初期创建仓库、初始化代码、仓库配置设置,同时完成仓库成员管理、权限管理、配置保护分支权限的配置。
  • 交互方式:界面操作、API接口和代码托管服务交互。

2、开发人员日常开发活动  

  • 活动:上传、拉取代码;拉取分支、创建MR、协作开发;在线监视代码、修复代码、关联需求缺陷单。
  • 交互方式:命令行、开发工具、浏览器。

3、代码审核活动  

  • 活动:在线查看代码、检视代码代码审核、代码责任田守护;门禁、代码合入;管理Committer权限。
  • 交互方式:开发工具、浏览器。

4、自动化系统配置员  

  • 活动:流水线webhook等配置;流水线构建触发;门禁、项目级CI、版本级CI 对接。
  • 交互方式:Webhook、API。

5、测试人员  

  • 活动:测试代码上传、下载;出测试软件包。
  • 交互方式:浏览器。

6、版本经理发版本  

  • 活动:锁库、发版本打tag。
  • 交互方式:浏览器。

7、QA/产品经理  

  • 活动:审计度量、E2E追溯审计。
  • 交互方式:API。

七、CodeArts Repo 产品优势  

1、全栈自研,安全无忧  

基于云原生架构全栈自研,Cell化部署,独有的分片加密存储,IP白名单和细粒度的访问权限控制,加密传输,异地容灾备份,为您提供云端极致安全和韧性的代码托管服务。

2、高效代码协同开发  

内置华为多年变革实践成果,覆盖云、管、端车等各类开发协同场景,支持不同规模团队包括微服务devops和大型团队协同开发,内置各类规则和模板,确保团队高效协同.

3、多层级代码质量防护  

基于代码分支和成员角色的代码上库作业流控制,配合工具自动化检查和人工审核流程内嵌华为CleanCode实践成果,保证每一行上库代码的质量。

4、以代码为中心的研发资产追溯  

作为研发核心资产的代码,让你清晰了解每一行代码的来龙去脉,提供从需求、设计、Story、代码、缺陷到产品版本的完整追溯路径,方便版本跟踪和问题修复。

八、应用场景介绍  

1、团队级别的开发协同  

优势

  • 云端代码存储,开箱即用
  • 简易开发流程,快速迭代开发
  • 多种协同开发模式选择(分支开发/Fork仓开发)
  • 随时随地检视代码
  • 链无缝集成自动化流水线

2、企业级别的开发协同  

优势

  • 跨团队,跨地域协同开发
  • 组织级代码开发规范
  • 多角色细粒度权限控制
  • 多种内嵌模板,统一开发过程
  • 研发资产数据分析和洞察
  • 丰富的扩展点,方便企业集成
  • 代码核心资产备份

九、CodeArts Repo特性介绍  

1、代码审核上库门禁  

  • 特性:多层级、细粒度代码上库质量门禁。
  • 支持人工审核、自动化流水线集成对上库代码进行质量管控,不符合质量指标的代码不允许入库,人工审核支持权责分离原则 (SOD),自动化检查支持分支级管控。

2、代码检视  

  • 特性:多形式的代码检视活动。
  • 支持基于文件的随心检视、合并请求代码检视能力,让团队集中检视或者分散式协同检视,支持检视模板、检视人自动分配、检视任务通知设置检视意见可跟踪,可闭环。

3、细粒度权限控制  

  • 特性:基于角色的细粒度权限控制。
  • 针对仓库管理、仓库配置、代码开发等活动提供细粒度的权限控制,不同成员的代码访问权限支持分支级权限管控,提升协同开发效率和确保代码安全。

4、围绕代码的E2E追溯  

  • 特性:围绕代码的研发资产追溯。
  • 提供从需求、任务、设计、缺陷、代码、版本的记录追溯,掌握每一样代码的来龙去脉,方便网上问题定位和审计。

5、仓库规范及模板  

  • 特性:丰富的仓库模板,标准化的团队开发活动。
  • 提供仓库模板,代码检视模板,合并请求模板,可配置必填和选填字段,确保团队开发行为统一,更加方便的基于研发数据做效能分析和改进。

6、安全和韧性  

  • 特性:提供极致安全和韧性。
  • 基于云原生架构全栈自研,提供极致韧性和安全的代码托管能力,源于华为实践成果,覆盖云、管、端、车、IT等超大产品协同开发,10亿级代码管理,万人团队并发在线协同作业高并发代码下载,超大存储容量.

7、多作业流支持  

  • 特性:提供多种开发作业协同方式。
  • 提供基于Git的多种开发协作模式,既适合中小企业灵活开发模式,也支持中大型企业的复杂开发协作模式。

8、全栈自研  

  • 特性:华为全栈自研。
  • 全新的云化架构,基于云原生架构分层构建,cell集群化部署,智能副本调度,配合独创的压缩存储技术,提升代码并发访问上限,支持超大规模、超大团队协同开发。

十、使用CodeArts Repo的关键流程  

1、确定开发规范  

  • 设定默认分支:master。
  • 确定保护分支:master与 develop。

确定分支的命名规范:

¡Features/abc[特性描述]。

¡hotfix/115[问题单日期]。

  • 确定版本的命名规范,并用这个规范来打标签。
  • 确定团队内部统一的Commit规范。
  • 确定合并请求的参与者,职责。

2、确定开发流程  

  • 创建仓库
  • 开发人员下载代码
  • 创建工作分支
  • 提交代码
  • 创建合并请求
  • 邀请团队成员,参与代码评审
  • 仓库管理员,审视后合入代码

3、配置仓库规则  

大家通过官方帮助文档进行详细学习如何配置仓库规则。

成长地图_代码托管 CodeArts Repo_华为云 (huaweicloud.com)。

下面展示配置仓库规则的一些界面效果,相信对大家了解CodeArts Repo会非常有帮助,大家一起来看看吧。

提交规则:

编辑提交规则:

项目成员管理:

设置分支的保护策略:

编辑保护分支:

合并请求设置界面:

设置代码审合并请求策略:

         

代码合并审核效果界面:

代码检视审核详情界面:

十一、总结  

这款华为自研的代码托管平台,涵盖了代码托管领域几乎所有的功能特性比如(权限控制、安全性、高性能、代码审核机制、版本日志记录、多作业流的支持等等),对于企业和软件公司来说是非常不错的选择。