Gerrit 大量代码提交流程优化
背景
本文适用于 提交大量初始代码 的场景(仓库版本的早期)。
有时候提交大量代码到Gerrit的时候会提示:
$ git push
Counting objects: 512996, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (482705/482705), done.
Writing objects: 100% (512996/512996), 2.61 GiB | 9.46 MiB/s, done.
Total 512996 (delta 123942), reused 624 (delta 117)
remote: Resolving deltas: 100% (123942/123942)
remote: Counting objects: 512999, done
remote: Processing changes: refs: 1, done
To ssh://xx@xx:29418/xxx
! [remote rejected] master -> refs/for/master (commit bb5b175: Exceeding maximum number of files per change (499908 > 100000))
error: failed to push some refs to 'ssh://xx@xx:29418/xxx'
此后就需要花费大量的人力到提交代码上,降低开发效率;因此有必要解决这样的问题。
注意,用这种方法提交的代码不会在Gerrit-Code Review区域显示,因此本文最适用于 提交初始代码 的场景,为了规范技术管理,其他场景的操作最好向管理员报备后再操作。
做法
思路很简单,提交的时候绕过refs/for/ 和refs/heads/即可。
在Gerrit中添加权限
入口:点击Gerrit仓库,找到
Access,Edit;ADD REFERENCE。
为了以防万一,添加一个组,赋予强推权限。
Gerrit新建强推组:syncer。
1、refs/heads/master
- Push:ALLOW - sysncer - Allow pushing with or without force
- Forge Committer Identity:ALLOW - sysncer
- Forge Author Identity:ALLOW - sysncer
2、refs/remotes/origin/master
- Create Reference:ALLOW - sysncer
- Delete Reference:ALLOW - sysncer
3、refs/for/refs/heads/master
- Create Reference:ALLOW - sysncer
- Delete Reference:ALLOW - sysncer
提交方式
0、找到Gerrit的仓库地址,${Gerrit-repo}
1、拉取需要提交的Gerrit代码仓库:
git clone ${Gerrit-repo}
2、提交
注意,一般的Gerrit仓库要提交代码之前需要:
config refs/heads/*:refs/for/*,但是在这里不需要。
git push
# 必要时,使用强推命令。
git push --force --mirror
结果:
Counting objects: 136002, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (125500/125500), done.
Writing objects: 100% (136002/136002), 971.01 MiB | 9.36 MiB/s, done.
Total 136002 (delta 27908), reused 0 (delta 0)
remote: Resolving deltas: 100% (27908/27908)
remote: Counting objects: 136015, done
remote: Processing changes: refs: 1, done
To ssh://xx@xx:29418/xx
610d066..c3d6d87f master -> master
3、验证:在另外的地方git clone下来看看git log记录,看看提交信息是否健全。
Gerrit 大量代码提交流程优化的更多相关文章
- 敏捷开发-代码提交流程& 安装gerrit
- git代码提交流程
1.进入我的项目文件夹所在目录: 2.git status 查看我修改过的文件: 3.git add -A 将修改的文件全部添加, git add 文件名 只添加指定的文件名: 4.git comm ...
- Gerrit代码评审流程
Gerrit代码评审流程 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.代码评审流程(如下图所示) 第一步:贡献者报建一个提交,并通过之前从gerrit下载的commit-ms ...
- Openstack贡献者须知 2 — 社区工作运作 & 代码贡献流程
目录 目录 前文列表 订阅邮件列表 Mailing Lists 社区工作运作流程 Openstack 代码贡献流程 PEP8 Python编程风格 查阅相关资源 前文列表 Openstack贡献者须知 ...
- Git代码版本控制流程
我们的项目使用Git作为代码仓库.和版本控制工具. Git有几种Workflow,来管理代码版本变更流程,我们采用Gitflow Workflow流程. Gitflow Workflow,采用了mas ...
- Git代码提交规范
1. 引言 思想,因人而异,难以重复 写代码时,每个人的习惯是不一样的,所以,引入了代码规范,为了省力,引入了自动格式化代码工具,前端工程中比较典型的自动格式化代码工具如:Prettier · Opi ...
- iPhone应用提交流程:如何将App程序发布到App Store?
对于刚加入iOS应用开发行列的开发者来说,终于经过艰苦的Coding后完成了第一个应用后最重要的历史时刻就是将应用程序提交到iTunes App Store.Xcode 4.2开发工具已经把App提交 ...
- kbengine Unity3d demo 代码执行流程(4)
当服务端成功启动,客户端链接服务端后进入demo中的游戏界面,demo中的功能包括注册.登录.角色管理.战斗.场景等等. 对于新接触kbengine的人,看见客户端的代码后会觉得很迷茫,有些无从下手. ...
- Gitlab源码库里代码提交后,如何触发jenkins自动构建?
版本库里代码提交后,如何触发jenkins自动构建?这是一个面试题,感觉自己回答的并不好,因为并没有用过这个功能,之前公司实际项目用的是svn版本管理,一般都用立刻构建,和定时任务构建(不管代码是否有 ...
- Git 结合Git使用Bitbucket进行代码版本管理流程规范与实践
结合Git使用Bitbucket进行代码版本管理流程规范与实践 By:授客 QQ:1033553122 目录 目录 1 一. 测试环境 2 二. 新建项目 2 三. 新建公有版本库 3 四. ...
随机推荐
- 应急响应--linux入侵排查
- VueJS和Javascript实现文字上下滚动效果
一提到文字上下滚动,我们就会想到用不同的程序去实现,而且页面中有文字滚动会增加这个网页的互动和可信度. 1.Js最简单的方法是控制盒子的高度,使不断的重复添加 <html> <bod ...
- leaflet常用插件汇总介绍
1.Leaflet Ant Path(线条流动效果) 在交通项目.管网应用的项目中,常常需要标注出道路的走向.河流的流向或者管线的流向等等,Leaflet Ant Path能够很好的解决这类问题: g ...
- JavaScript 数组常用方法整理
数组变异方法 push() 数组末尾添加一个项目,返回新数组长度,arr.push(item)pop() 数组末尾删除一个元素,返回被删除元素,arr.pop()shift() 删除数组开头第1个元素 ...
- pageoffice 6 实现word文件添加水印
在很多场景下,Word文档正式发文之前,或者说形成最终文档之前,常常需要往Word文件中添加水印,并且会根据文件类型或内容的不同,需要添加的水印也不一样. 添加水印是Word软件里的一个简单功能,直接 ...
- Java中枚举类的深入理解
概述 在此之前由于个人在学习和开发中对枚举类的应用较少,所以对枚举类的知识点并没进行深入的了解,但最近写代码中突然想到了枚举类,抱着完善自身的知识的目的,就较为深入的了解了Java中的枚举类. 我在学 ...
- WPF中 x:Name和Name的区别
x:Name 唯一地标识 XAML 定义的对象,以便于从代码隐藏或通用代码中访问对象图中实例化的对象.x:Name 一旦应用于支持编程模型,便可被视为与由构造函数返回的用于保存对象引用或实例的变量等效 ...
- .NET周刊【6月第1期 2024-06-02】
国内文章 一文带你了解.NET能做什么? https://www.cnblogs.com/Can-daydayup/p/18214473 .NET是一个免费.开源.跨平台的开发平台框架,广泛应用于桌面 ...
- C# 机器学习
前言: 提起人工智能,机器学习.大家都是一脸懵的样子.其实呢,就是根据数据进行训练.然后可以大概的预测结果.Visual Studio2019 Preview中提供了图形界面的ML.Net,所以,只要 ...
- linux系统下,redis如何设置密码
1.命令方式 首先查看下密码是否存在,发现并未设置为空. -bash-4.2# cd /usr/local/redis-6.2.6/src -bash-4.2# ./redis-cli 127.0.0 ...