Gerrit 将合并提交历史记录中较早且位于存储库的不同“分支”中的潜在未经审核的更改。这是一个例子:
- 结账 gerrit 分支
devel
- 创建file1.txt,添加,提交,推送到
refs/heads/temp_branch
- 创建file2.txt,添加,提交,推送到
refs/for/devel
待代码审查
当 file2.txt 被接受并合并时,file1.txt 也会被合并,因为它位于上游,而不是在标记为正在审查的单独更改分支中。这可能是非常有问题的,我能想到的唯一解决方案是强制推送到每个分支的每个更改都经过代码审查。这并不理想,因为您可能希望拥有一些由一组审批者组成的分支,或者没有代码审查(对于某些代码交换?)。
这里的解决方案是强制将历史记录中的每个提交放入代码审查中,就像 file1.txt 没有被推送到同一存储库中的不同分支的情况一样。
Gerrit 中是否有强制执行此规则的设置?
谁能想到一个允许自由推动的工作流程refs/heads/
而不冒污染其他分支机构的风险?
非常感谢。
我怀疑您看到此行为是因为步骤 3 中的提交将步骤 2 的提交作为其父级。除非提交的所有父项都已提交,否则您无法提交提交。我同意你的观点,这似乎是 Gerrit 中的一个错误 - 它应该拒绝提交,直到步骤 2 提交。
尝试此解决方法 - 在步骤 2 之后添加步骤 2a:
2a.再次签出开发分支
如果提交将进入两个不同的分支,那么它们是线性的就没有意义。
另一种想法是——您在这个项目中使用什么合并策略?如果它是cherry-pick,我会尝试将其更改为merge-if-needed,或者如果它不是cherry-pick,我会尝试将其更改为cherry-pick。我相信合并策略之间的行为是不同的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)