社区首页 >问答首页 >当第二次更新审查时,如何修改Gerrit中的评审问题?

当第二次更新审查时,如何修改Gerrit中的评审问题?
EN

Stack Overflow用户
提问于 2012-09-18 18:32:10
回答 6查看 26.9K关注 0票数 18

还在努力学习如何使用Gerrit和它的过程。我在哪里做的步骤

  1. 将第一个change1推送到gerrit以供评审到头:参考文献/用于/开发
  2. 在同一个分支上做一些其他的事情,并将change2推到gerrit,以供评审,并提交给主管:参考文献/ for /develop

两次提交都有gerrit更改-ID行。

所以现在我想解决change1的问题,所以我做了

代码语言:javascript
代码运行次数:0
复制
git checkout -b change1 <change 1's commit id>

进行更改并提交(将更改ID添加到提交消息)

代码语言:javascript
代码运行次数:0
复制
git add .
git commit

现在当我做了

代码语言:javascript
代码运行次数:0
复制
git push origin HEAD:refs/for/develop

我得到了

代码语言:javascript
代码运行次数:0
复制
 ! [remote rejected] HEAD -> refs/for/develop (squash commits first)
error: failed to push some refs to 'ssh://adrian@192.168.7.100:29418/CommunicationsLibrary'

我如何解决堆叠的评论中的问题,并将其发布到gerrit,而不必再创建另一个评论?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-09-18 18:55:22

当您在Gerrit中有依赖的评审时(也就是说,评审中的一个更改依赖于同时处于评审中的早期更改),并且您需要对早期的更改进行修改,您实际上必须重新提交两个更改(因为第二个更改依赖于不同的“父”提交)。

所以情况是,在主开发分支的单个分支中有两个提交,如下所示:

代码语言:javascript
代码运行次数:0
复制
o master
\
 o Commit A (in review, requires change)
 o Commit B (in review, no changes required)

在这种情况下,我通常所做的是在第三次提交中对commit A进行更改。我们的提交图现在如下所示:

代码语言:javascript
代码运行次数:0
复制
o master
\
 o Commit A (in review, requires change)
 o Commit B (in review, no changes required)
 o Commit C (modifications to Commit A)

现在,我执行git rebase -i master并重新排序提交C,使其在提交A之后,但在提交B之前,然后将其压缩到提交A中。提交图现在如下所示:

代码语言:javascript
代码运行次数:0
复制
o master
\ 
 o Commit A' (Commit A, incorporating the changes from Commit C)
 o Commit B' (the same changes made in Commit B, but applied to Commit A' instead of A)

最后,git review (或任何用于提交对Gerrit的更改的命令)重新提交这两个提交给Gerrit。

正是由于这种复杂的情况,大多数人强烈建议在一个单独的分支中处理每个不同的更改,然后在提交给Gerrit之前将其压缩到一个单独的提交中,而不是需要处理这些类型的情况,在这些情况下,您需要同时检查依赖的更改。

票数 19
EN

Stack Overflow用户

发布于 2012-09-18 19:17:21

我认为您的问题与这样一个事实有关:对第一次提交的修正已经将第二次提交作为依赖项。这是我个人会做的,但也许有更好的方法。我看它是因为您想要重基提交的方式,并且处理最后的3。所以运行'git -i HEAD~3‘。这允许你重新基地最后3次提交,通过切换顺序或将它们融合在一起。您应该知道,它以最古老的优先顺序列出了提交。下面是一个例子:

git日志如下:

提交信息:.

信息: foo2

提交信息:.

信息: bar1

提交信息:.

信息: foo1

运行上述命令后,编辑器将弹出以下内容:

选foo1。

选bar1。

选foo2。

(这是假设您的第二个foo更改没有更改bar1更改的任何文件,因为这可能不起作用,如果这样做了,您应该修改提交。)然后将列表更改为:

拾取foo1

固定foo2

拾取bar1

在此之后,您将把foo1和foo2压缩为一个commit,而bar1将是提交的追随者。然后,我会运行'git重置-软头~1‘重置最新的提交,然后'git提交-修改’允许您更改提交的第一次审查,并确保包括更改-id。那就试试你的推。在此之后,您应该设置了一个新的修补程序,第二次更改的所有文件都将被修改,并且仍然在您的工作目录中。

票数 2
EN

Stack Overflow用户

发布于 2020-01-23 02:53:08

“情况就像”特雷弗解释道。当您有此条件时,rebase -i是一种很好的方法。

就我个人而言,我也使用这个命令,但有一点不同:

1.使用--固定和自动量化的

你有两项承诺:

代码语言:javascript
代码运行次数:0
复制
old commit
new commit

当您想更改旧的提交时,那么

代码语言:javascript
代码运行次数:0
复制
 git commit --fixup <old_commit_id>

然后用自动调试器重新定位,

代码语言:javascript
代码运行次数:0
复制
git rebase -i --autosquash <commit_id_before_old_commit>

如果不清楚我的评论,您可以在:https://fle.github.io/git-tip-keep-your-branch-clean-with-fixup-and-autosquash.html中查看详细信息

2.利用Gerrit的优势

提交两个更改后,您的GUI上将有两个开放评论更改。

然后转到您的“旧更改”,选择下载->签出此更改,实际上在您签出后,您将转到分支进行此更改,然后修复您的代码,修改,重基,推送.就像你平时一样。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12487791

复制
相关文章
使用gerrit作为代码评审工具
需求描述 其实作为项目代码的maintainer,一直习惯于mailing list + git的代码评审及管理,无奈公司主推敏捷+devops,老板让改用gerrit。硬着头皮切换到gerrit,在这里记录下安装配置的过程及踩过的许多坑,以便网友们以后配置gerrit留作参考。 需求其实很简单,我们项目一直使用公司内部一个类似于github的代码托管网站来托管项目代码,使用邮件列表来评审代码。代码通过评审通过后,我再将patch push到代码托管服务器上去。整个开发流程如下图所示:
宅蓝三木
2018/02/07
2.4K0
使用gerrit作为代码评审工具
代码审查或评审的最佳实践
现实情况是,代码审查对于每个参与者来说经常是一种令人不舒服的体验,导致审查变得好斗,无效甚至更糟,根本就不存在代码审查。 这是一个快速指南,可帮助您创建有效的代码审查过程。 为什么要进行代码审查? 在审核您的代码审核流程时要回答的第一个问题是:我们的代码审核的目的是什么?当您提出这个问题时,您很快意识到执行代码审查的原因有很多。您甚至可能会发现团队中的每个人都对他们审核代码的原因有不同的看法。他们可能会认为他们正在审查:
lyb-geek
2019/07/22
1K0
Gerrit 代码评审安装-快速使用手册
文章摘自googlesource,因实际安装环境不同文章内容也会对应做修改。本文基于Unix的操作系统解释说明,不推荐直接参照本文就部署在生产环境。
幺鹿
2018/08/21
1.1K0
超级账本-如何贡献
个人感受,文档看的再多,学习的速度也不如参与到项目中去,深入了解实现原理和设计的初衷。文档只能让我们对Fabric的整体运行机制有一个宏观的认识,要进一步深入,就需要从源代码入手,而贡献代码则是一个自然而然的事情,学习的过程中总会发现一些问题和值得优化的地方。所以前阵子顺手翻译了一下Fabric如何贡献相关的官方文档。这篇文章讲解,其中的整体流程和所需用到的工具。如需详细学习,请参考官方文档:
TopJohn
2022/11/11
1.1K0
Git Review + Gerrit 安装及使用完成 Code-Review
哎_小羊
2018/01/02
8.4K0
Git Review + Gerrit 安装及使用完成 Code-Review
【提问帖】GO中调用redis时,当并发量比较大时出现的问题。
GO中调用redis时,实始化一个连接池,做法也是一般的用户: &redis.Pool{ MaxIdle: beego.AppConfig.DefaultInt("redis::maxidle", 1), MaxActive: beego.AppConfig.DefaultInt("redis::maxactive", 10), IdleTimeout: time.Duration(beego.AppConfig.DefaultInt64("redis::idle_tim
李海彬
2018/03/27
2.2K0
腾讯云搭建git+gerrit代码评审服务器
这里我安装的是JDK8,安装完成之后输入java -version,出现一下结果说明安装成功了。
哆哆jarvis
2022/08/23
2.4K0
腾讯云搭建git+gerrit代码评审服务器
关于conda 更新时权限的问题
就被告知以下错误:PermissionError(13,'Permission denied)
戈贝尔光和热
2018/12/27
2.1K0
如何向OpenDaylight社区贡献代码
本文由两部分构成,第一部分简要介绍了Gerrit的工作原理以工作流程,第二部分结合自己成功提交代码的例子,向大家展示向OpenDaylight提交源码的过程。向开源项目提交代码也没有大家想象的那么难,所以希望日后能够看见大家在OpenDaylight提交代码。 Gerrit概述 Gerrit是一个基于Git的,用于review code commit的框架,无论是OpenDaylight、ONOS或者是OpenStack都使用Gerrit作为他们的代码管理工具。它的最大特点就是,每一个commit都需要被r
SDNLAB
2018/04/02
1.2K0
如何向OpenDaylight社区贡献代码
说透代码评审
  代码如熵,不加外力很容易就会随着代码的不断堆积而发生腐烂和溃败。我们不是不知道代码问题,而是对既成事实难有改变。但是如果站在迭代的角度思考下一次升级,如何确保新的代码质量就显得很有必要,特别是你的代码需要重写的时候,我想你一定会遇到和我一样的问题,我们究竟应该如何保证我们的代码的质量?于是就有了这篇工具型的文章。
架构之家
2022/07/12
7810
说透代码评审
jenkins如何集成gerrit
gerrit是一个基于web的代码审查工具,用于git版本控制系统,在代码入库之前对每个提交进行审阅。
用户5521279
2019/12/20
6.1K0
jenkins如何集成gerrit
Gerrit代码Review入门实战
代码审核(Code Review)是软件研发质量保障机制中非常重要的一环,但在实际项目执行过程中,却因为种种原因被Delay甚至是忽略。在实践中,给大家推荐一款免费、开放源代码的代码审查软件Gerrit。 1、Why Code Review Code Review是什么 Code Review最直观的解释即看代码。常规的做法为自己看,有时代码逻辑问题可能自己看不出来,需要找同事一起看,在大家知识体系相对平均的情况下可能需要花钱专门的公司帮助查看。 Code Review需要看哪些?对于刚入职场或者刚接触到C
个推君
2018/03/21
2K0
Gerrit代码Review入门实战
如何使用YATAS审查AWS基础设施中潜在的安全问题
YATAS是一款针对AWS基础设施安全的强大工具,该工具可以帮助广大研究人员分析和审查AWS基础设施中的错误配置或与插件集成相关的潜在安全问题。
FB客服
2023/02/10
4890
如何使用YATAS审查AWS基础设施中潜在的安全问题
评审的艺术——谈谈现实中的代码评审
曾经写过一点关于代码评审(code review)的文章,比如 这篇和 这篇 ,现在觉得关于它的认识又有了不少更新。软件工程的技术和实践分成两部分,一部分是和书本知识一致的,大约占一半,这部分基本上在大学里就可以学,自学只要方法得当、刻苦努力也可是途径;但是第二部分来自于实际团队、经验,内容通常无法从书本当中获得,而且难说对错,不同的人和不同的经历造就了不同的认识。代码评审就是第二部分颇具槽点,可以大加讨论的典型。
MavenTalker
2019/07/19
3050
当删库时如何避免跑路
删库跑路也是个老梗了,可见在运维数据库的过程中误删除数据,或者开发的代码有bug,造成数据的误删除屡见不鲜。不过现在也有许多用于恢复或预防误删除的方案,例如SQL管理系统,将要执行的SQL先交由管理员审核,然后由管理员备份一个镜像数据库,在镜像上执行该SQL,并在执行后还原镜像。这样经过层层把关就可以大大减小出现误操作的几率。
端碗吹水
2020/09/23
9980
当删库时如何避免跑路
评审的艺术——谈谈现实中的代码评审
曾经写过一点关于代码评审(code review)的文章,比如这篇和这篇,现在觉得关于它的认识又有了不少更新。软件工程的技术和实践分成两部分,一部分是和书本知识一致的,大约占一半,这部分基本上在大学里就可以学,自学只要方法得当、刻苦努力也可是途径;但是第二部分来自于实际团队、经验,内容通常无法从书本当中获得,而且难说对错,不同的人和不同的经历造就了不同的认识。代码评审就是第二部分颇具槽点,可以大加讨论的典型。
DevOps时代
2019/05/17
5300
评审的艺术 — 谈谈现实中的代码评审
曾经写过一点关于代码评审(code review)的文章,比如这篇和这篇,现在觉得关于它的认识又有了不少更新。软件工程的技术和实践分成两部分,一部分是和书本知识一致的,大约占一半,这部分基本上在大学里就可以学,自学只要方法得当、刻苦努力也可是途径;但是第二部分来自于实际团队、经验,内容通常无法从书本当中获得,而且难说对错,不同的人和不同的经历造就了不同的认识。代码评审就是第二部分颇具槽点,可以大加讨论的典型。
DevOps时代
2019/09/26
4360
评审的艺术 — 谈谈现实中的代码评审
评审的艺术——谈谈现实中的代码评审
曾经写过一点关于代码评审(code review)的文章,比如这篇和这篇,现在觉得关于它的认识又有了不少更新。软件工程的技术和实践分成两部分,一部分是和书本知识一致的,大约占一半,这部分基本上在大学里就可以学,自学只要方法得当、刻苦努力也可是途径;但是第二部分来自于实际团队、经验,内容通常无法从书本当中获得,而且难说对错,不同的人和不同的经历造就了不同的认识。代码评审就是第二部分颇具槽点,可以大加讨论的典型。
四火
2022/07/19
2990
当大模型不是问题时,如何应对 LLM 的工程化落地挑战?
几个月前,在 Thoughtworks 的内部 AIGC 研讨会里,我们一直达成了一系列一致观点,诸如于:如果没有 “开源模型” 降低企业应用 LLM 的成本,那么 LLM 会很快消亡。所以,我们相信开源 LLM + LoRA 微调会成为企业的一种主流方式。现今,我们可以看到 LLaMA 2、Code LLaMA 2 等模型在不断刷新这种可能性。
Phodal
2023/09/10
2.1K1
当大模型不是问题时,如何应对 LLM 的工程化落地挑战?
点击加载更多

相似问题

Gerrit代码评审

11

如何删除Gerrit代码评审中的组?

11

如何通过包在gerrit中设置代码评审?

15

如何避免浪费gerrit审查提交?

20

使用Gerrit进行代码评审

15
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档