Gerrit,这是啥玩意?和git, 或则说github这类代码仓有什么区别?
起源
最近在学习了解源码源有哪些的时候,发现除了常见的github, codehub,华为云的codearts repo之外,还有一种代码源叫Gerrit。这就涉及到我的知识盲区了,这玩意是个啥,在git里面加了rri是啥意思,是基于git的代码仓吗?
Gerrit是什么
带着这些困惑,去了解这个团队代码协作审查的工具。
Gerrit是一个免费的基于网页的,让软件开发者在团队中可以使用网页浏览器互相审查各自源代码的工具,它支持对代码的修改,并支持开发者接受或拒绝这些修改。可以这么说,几乎任何需要团队协作,需要正式发布的项目都应该使用Gerrit来支持代码审查功能。
Gerrit的工作流程大概是这样的:
- 开发者在本地修改代码后,提交到Gerrit上一个特殊分支里,比如dev/ref,这样就创建了一个待审查的变更(change)
- Gerrit则会给每个变更分配一个唯一的Change-Id,用来跟踪、管理变更的版本和状态
- 开发者可以在Gerrit网页界面上查看变更的内容,同时支持添加评论,指定审查人,以及给变更打分(vote)
- 而指定的审查人则可以在Gerrit网页界面上审查变更的内容,给变更打分(vote),或则直接拒绝变更(abandon)
- 如果该变更被拒绝/需要重新修改,开发者可以在本地修改后,再次提交到Gerrit这个分支上,这样就更新了变更的版本,但不会改变Change-Id
- 直至变更得到了足够的分数,满足了通过条件(这个条件可以在Gerrit的配置里修改),就可以被合并到代码仓的目标分支了,比如master
我们其实也可以感受到了,Gerrit因为是一个基于git的代码审查系统,它可以与github这类代码仓协同,或则也可以直接使用,因为它里面也会存有代码(提供代码托管功能)。所以Gerrit确实也支持作为代码源。
Gerrit和Git, github等代码仓的区别是什么?
Git是一种开源的分布式版本控制系统,可以高效管理不同大小的项目。而且正因为它是分布式的,没有中央服务器,那每个使用它的电脑可以说连都存了一个完整的版本库,支持不联网也可以操作,后续等联网之后,把修改推送给团队就可以了。
Github,GitLab这类代码仓则是基于git的代码托管平台,它们支持开发者在云端创建、管理、分享和协作代码项目;而它们本身则使用git作为版本控制系统。同时,它们也额外支持代码审查功能。
Gerrit则是专业的代码审查系统,它可以在git / GitHub / GitLab的基础上增加更强大和灵活的代码审查功能。比如使用Change-Id来跟踪和管理变更的版本和状态,使用特殊的分支模型来上传和合并变更,使用强大的权限控制机制来设置谁可以提交、审查、合并代码,以及使用丰富的插件系统来扩展和定制Gerrit的功能和界面。
参考资料
- 点赞
- 收藏
- 关注作者
评论(0)