热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

DevOps微课|如何用Gerrit进行评审

点击上方“中兴开发者社区”,关注我们每天读一篇一线开发者原创好文DevOps微课系列旨在帮助用户学习DevOps实践。1概述    本文详细介绍一般开发人员使用Gerrit代码评审





点击上方“中兴开发者社区”,关注我们


每天读一篇一线开发者原创好文


DevOps微课|如何用Gerrit进行评审


DevOps微课系列旨在帮助用户学习DevOps实践。




1 概述


      本文详细介绍一般开发人员使用Gerrit代码评审系统基础设置和操作:包括获取代码,编辑并提交代码、添加评审员,进行代码评审、根据评审意见进行修改并再次提交,更正其他开发者提交的代码,如何解决合入冲突




2 Gerrit评审流程操作指南


  评审流程图(正常流程&待修订)


DevOps微课|如何用Gerrit进行评审2.1 使用DevOps微课|如何用Gerrit进行评审检出代码


   作用:clone 时同时下载commit-msg hook,hook的作用是在commit的时候生成change-ID(评审单的ID)


2.2 新建分支修改代码


 例子:基于master分支拉出bug分支修改ec61100123456,然后提交评审


  git checkout -b bugfix/ec61100123456 -t origin/master


  修改,add,commit——注意每次commit都会生成一个change-ID,即一个评审




2.3 提交评审 


git push origin HEAD:refs/for/master


在提交评审的同时,设置评审人


git push origin HEAD:refs/for/master%r=zhao**@zte.com.cn,r=jiang**@zte.com.cn 


命令太长?可以使用别名保存常用的命令参数,如:


git config --global alias.rh "push origin HEAD:refs/for/master%r=zhao**@zte.com.cn,r=jiang**@zte.com.cn"


以后直接敲 git rh命令即实现相同操作。


 


!!注意



  • push到refs/for/master 而非master


  •  提交时会自动在gerrit服务器上生成一个评审单,push命令返回结果时会提示评审单路径



2.4 评审流程处理


2.4.1 评审入口


 My->Changes 里选择评审单


2.4.2 评审界面和流程规则


主界面1:关注1、commit的相关内容;2、change ID; 3、change status,其中Needs Workflow是评审单的状态(change状态含义说明);


DevOps微课|如何用Gerrit进行评审


主界面2:评审文件清单,点击文件查看详细差异



DevOps微课|如何用Gerrit进行评审


点击某个文件,可打开差异界面浏览差异,在该界面可以:


DevOps微课|如何用Gerrit进行评审



  • 添加文件级comment


  •  选取某行/段 ,添加comment


  • 选择不同的patch,比较代码差异(base表示基础代码,开发者每修订一次代码,重新提交评审都会生成一个新的patch。)


  • 在线编辑文件



DevOps微课|如何用Gerrit进行评审


主界面3:评审操作界面,Add…添加评审人,Reply...回复评审意见,Post发布评审意见,打分情况显示在最下方


DevOps微课|如何用Gerrit进行评审


DevOps微课|如何用Gerrit进行评审


Gerrit评审步骤和通过标准:



  •  Gerrit评审有3个步骤:Code-Review(检查代码)、Verified(验证)、Workflow(工作流),3个步骤没有先后依赖关系,但是必须3个全部走完且通过代码才可以正式提交;


  • 评审流程通过必须同时满足:



a. Code-Review 有+2。(多人+1不等同于+2,-2优先级大于+2,且流程打回)


b. Verfied 有+2   (多人+1不等同于+2,-2优先级大于+2,且流程打回。这步可以为CI系统验证,CI运行完毕后由CI账号自动反馈结果并打分,如下图为CI验证通过+2:)


c. Workflow +1  (一般由core组成员控制,用途为在整体流程上控制评审)


  • 当每个步骤字体变为绿色时即表示该步骤已经通过,如果为红色代表该步骤不通过。


DevOps微课|如何用Gerrit进行评审


DevOps微课|如何用Gerrit进行评审


主界面4:评审操作历史,单击某个历史可以查看详细情况


DevOps微课|如何用Gerrit进行评审


2.4.3 评审不通过,修订commit重新提交patch,进行评审


!!提醒:注意要使用commit --amend功能来修订你的提交,而非新增一个commit,新增commit会新生成一个评审单


git commit --amend   


git push origin HEAD:refs/for/master 


 


♥   重新提交时有冲突?(使用rebase把分支重定位到目标分支最新,然后重新提交评审)


git checkout master


git pull origin master


git checkout bugfix/ec61100123456


git rebase -i master


git push origin HEAD:refs/for/master 




2.4.4 评审过程通过,提交代码 


整个评审流程通过(此时评审单状态为Ready to Submit),在评审操作界面会出现按钮,点击该按钮提交代码到正式的目标分支。几点注意:



  •  前提是该成员拥有submit权限,有些项目的策略是代码修改成员并没有submit权限,由proj-core人员来进行submit


  • 也可以通过abandon 放弃评审


  •  可以通过cherry pick 合并到其它目标分支



DevOps微课|如何用Gerrit进行评审







推荐阅读
  • 持续集成概述与实践指南
    本文探讨了持续集成(CI)的基本概念、目的及其在现代软件开发中的应用。通过实例分析,帮助读者理解如何有效实施持续集成,提高软件开发效率。 ... [详细]
  • 本文详细介绍了如何使用 Yii2 的 GridView 组件在列表页面实现数据的直接编辑功能。通过具体的代码示例和步骤,帮助开发者快速掌握这一实用技巧。 ... [详细]
  • Android 渐变圆环加载控件实现
    本文介绍了如何在 Android 中创建一个自定义的渐变圆环加载控件,该控件已在多个知名应用中使用。我们将详细探讨其工作原理和实现方法。 ... [详细]
  • 扫描线三巨头 hdu1928hdu 1255  hdu 1542 [POJ 1151]
    学习链接:http:blog.csdn.netlwt36articledetails48908031学习扫描线主要学习的是一种扫描的思想,后期可以求解很 ... [详细]
  • golang常用库:配置文件解析库/管理工具viper使用
    golang常用库:配置文件解析库管理工具-viper使用-一、viper简介viper配置管理解析库,是由大神SteveFrancia开发,他在google领导着golang的 ... [详细]
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • 数据库内核开发入门 | 搭建研发环境的初步指南
    本课程将带你从零开始,逐步掌握数据库内核开发的基础知识和实践技能,重点介绍如何搭建OceanBase的开发环境。 ... [详细]
  • 机器学习中的相似度度量与模型优化
    本文探讨了机器学习中常见的相似度度量方法,包括余弦相似度、欧氏距离和马氏距离,并详细介绍了如何通过选择合适的模型复杂度和正则化来提高模型的泛化能力。此外,文章还涵盖了模型评估的各种方法和指标,以及不同分类器的工作原理和应用场景。 ... [详细]
  • 本文详细介绍了macOS系统的核心组件,包括如何管理其安全特性——系统完整性保护(SIP),并探讨了不同版本的更新亮点。对于使用macOS系统的用户来说,了解这些信息有助于更好地管理和优化系统性能。 ... [详细]
  • 网络运维工程师负责确保企业IT基础设施的稳定运行,保障业务连续性和数据安全。他们需要具备多种技能,包括搭建和维护网络环境、监控系统性能、处理突发事件等。本文将探讨网络运维工程师的职业前景及其平均薪酬水平。 ... [详细]
  • 探讨如何真正掌握Java EE,包括所需技能、工具和实践经验。资深软件教学总监李刚分享了对毕业生简历中常见问题的看法,并提供了详尽的标准。 ... [详细]
  • FinOps 与 Serverless 的结合:破解云成本难题
    本文探讨了如何通过 FinOps 实践优化 Serverless 应用的成本管理,提出了首个 Serverless 函数总成本估计模型,并分享了多种有效的成本优化策略。 ... [详细]
  • 解读 DevOps:开发与运维的融合之道
    近年来,随着信息技术的快速发展,DevOps作为一种新的IT管理理念逐渐受到重视。本文将探讨DevOps的核心概念及其对现代企业的重要意义。 ... [详细]
  • 混合云架构在本地与云服务间寻求平衡的有效性探讨
    随着云计算技术的发展,混合多云架构因其灵活性和高效性而备受关注。本文将深入探讨混合多云(简称混合云)如何通过结合本地基础设施与云端资源,为企业提供一个更为平衡且高效的IT解决方案。 ... [详细]
  • ASP.NET MVC中Area机制的实现与优化
    本文探讨了在ASP.NET MVC框架中,如何通过Area机制有效地组织和管理大规模应用程序的不同功能模块。通过合理的文件夹结构和命名规则,开发人员可以更高效地管理和扩展项目。 ... [详细]
author-avatar
seaknkoo_776
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有