Gerrit将合并可能未提交的更改,这些更改在提交历史记录中较早且位于不同的分支中。存储库。这是一个例子:
devel
refs/heads/temp_branch
refs/for/devel
进行代码审核当file2.txt被接受并合并时,file1.txt,因为它的上游而不是标记为正在审查的单独的更改分支,也会被合并。这可能是非常有问题的,也是唯一的解决方案我能想出的是强制推动每个分支的每个变更都要经过代码审查。这并不理想,因为您可能希望在一组批准者中设置一些分支,或者没有代码审查(对于某些代码交换?)。
这里的解决方案是强制将历史记录中的每个提交放入代码审查中,就像file1.txt未被推送到同一存储库中的不同分支一样。
Gerrit中有一个设置强制执行此规则吗?
任何人都可以想到一个工作流程,允许自由推送到refs/heads/
而不会有污染其他分支的风险吗?
非常感谢。
答案 0 :(得分:2)
我怀疑您看到此行为,因为步骤3中的提交将步骤2的提交作为其父级。除非已提交所有父母,否则您无法提交提交。我同意你的意见,这似乎是格里特的一个错误 - 它应该拒绝提交,直到第2步提交。
尝试这种解决方法 - 在步骤2之后添加步骤2a:
2a上。再次结帐devel分支
如果提交要进入2个不同的分支,那么它们就不是线性的。
另一个想法 - 您为此项目使用的合并策略是什么?如果它是樱桃挑选,我会尝试将其更改为合并 - 如果需要,或者如果它不是樱桃选择我会尝试将其更改为樱桃挑选。我相信这里的行为在合并策略之间是不同的。