我正在为团队设置Gerrit服务器。我过去使用过Gerrit,但从未设置过。
我过去知道的一个功能是,一旦获得CL批准,就可以在不失去批准的情况下重新建立分支基础。我认为这是某处的设置,但找不到。
您需要将存储库的“提交类型”(在存储库配置页面中)设置为以下之一:
必要时重新设置基数
如果提交的更改是目标分支的严格超集,则该分支将快速转发到该更改。如果不是,则更改将自动重新设置基础,然后将分支快速转发到更改。
当Gerrit尝试进行合并时,默认情况下,只有在没有路径冲突的情况下,合并才会成功。当在合并的另一端也更改了同一文件时,将发生路径冲突。
始终重置
[基本上,与必要时进行重新设置相同,但是即使可以进行快速转发,它也会创建新的补丁集,并且像Cherry Pick这样,它可以确保页脚(如Change-Id,Reviewed-On等)存在于合并的结果提交中。
因此,Rebase Always可以被视为类似于Cherry Pick,但重要的区别在于Rebase Always不会忽略依赖项。
请参阅Gerrit文档here中的更多详细信息。
我认为您正在寻找Copy All Score On Trivial Rebase标签。
下面的示例来自我们的project.config。对于Verified标签,如果存在琐碎的基准或添加了“无代码更改”补丁集,则分数将被复制,“无代码更改”基本上意味着更新的提交消息。
[label "Verified"]
function = MaxWithBlock
value = -1 Fails
value = 0 No score
value = +1 Verified
copyAllScoresIfNoCodeChange = true
copyAllScoresOnTrivialRebase = true
defaultValue = 0