如何使用 Gerrit 进行分支审核

问题描述 投票:0回答:2

如何使用 gerrit 进行分支审查?我想分析一次 gerrit 更改中的所有分支更改。

想法是审查具有多个更改(提交)的分支的代码。

gerrit
2个回答
0
投票

如果你想审查一个有多个提交的分支,Gerrit 不是一个合适的工具。 Gerrit 中的审查是在每个提交中单独执行的。 Github 或 Bitbucket 是适合分支审查的工具。

回答了你的问题,一个建议:恕我直言,你应该尝试与 Gerrit 合作,单独审查每个提交,因为这是一个非常好的工作流程。我真的很喜欢(并且更喜欢)Gerrit 策略。


0
投票

我创建了一个 git 别名,它促进了传统的 git 工作流程(在“工作”分支上进行多次提交),并在提交消息中使用相同的 Change-Id 将它们自动推送到 Gerrit。它可以添加到 .gitconfig 文件中:

...
[alias]
    gerrit = "!git reset --soft $(git rev-list master..HEAD | tail -1) &&  \
               git commit --amend --no-edit &&                             \
              (git push origin HEAD:refs/for/master; git reset HEAD@{2})"

假设:

  • 您已经为您的主题/修复更改创建了一个分支,并且至少提交了一个;

用法:

git gerrit


工作原理如下:

git reset --soft $(git rev-list master..HEAD | tail -1)

git rev-list master..HEAD | tail -1
获得我们在分支上创建的第一个提交的 SHA-1(从
master
分叉后),我将其称为“基础”提交。然后我们将 SHA-1 提供给:
git reset --soft
将分支指针移回此提交,将以后提交的所有更改保留为 staged。然后:

git commit --amend --no-edit

我们通过一次

--amend
将阶段性更改压缩到基础提交中。原始提交消息将被保留,因此将是Change-Id

git push origin HEAD:refs/for/master

这就是一切的重点 - 我们推动 Gerrit ...

git reset HEAD@{2}

最后我们利用 reflog 历史恢复我们分支的原始形状,

HEAD@{2}
意味着我们的 HEAD 是两步前的修订(在
commit --amend
之前和第一个
reset
)。

优点:

  • 您在工作分支上维护自己的提交粒度,您可以根据需要使用
    git rebase -i
    编辑它们以实现逻辑顺序和可读性(不要修改“基本”提交消息中的 Change-Id);
  • 同时使用一个命令将最新的更改上传到 Gerrit,使其接受它们作为同一更改的另一个补丁集,而无需使用多个相关更改向您的更改列表发送垃圾邮件。
© www.soinside.com 2019 - 2024. All rights reserved.