gerrit prolog提交规则条件检查
如果插入的代码超过定义的阈值,我们将使用gerrit 2.11添加经理批准标签。prolog rules.pl如下所示 我可以使用第7行和第8行删除经理批准;但是,如果注释了第7行和激活的第8行,则经理的批准始终存在 如果我要用下面的行替换第8行,经理的批准也在那里,这是否意味着commit_stats总是返回true,而第8行不会运行remove_verified call 我们在prolog中是新手,任何地狱都将受到极大的赞赏 删除已验证[标签“经理批准”,R:-插入=10,插入>5,删除已验证,Rgerrit prolog提交规则条件检查,prolog,gerrit,Prolog,Gerrit,如果插入的代码超过定义的阈值,我们将使用gerrit 2.11添加经理批准标签。prolog rules.pl如下所示 我可以使用第7行和第8行删除经理批准;但是,如果注释了第7行和激活的第8行,则经理的批准始终存在 如果我要用下面的行替换第8行,经理的批准也在那里,这是否意味着commit_stats总是返回true,而第8行不会运行remove_verified call 我们在prolog中是新手,任何地狱都将受到极大的赞赏 删除已验证[标签“经理批准”,R:-插入=10,插入>5,删除已
submit_rule(S) :-
gerrit:default_submit(X),
X =.. [submit | Ls],
remove_verified(Ls, R),
S =.. [submit | R].
remove_verified([], []).
%remove_verified([label('Manager-Approval', _) | T], R) :- remove_verified(T, R), !.
remove_verified([label('Manager-Approval', _) | T], R) :- gerrit:commit_stats(_, inserted, _), inserted > 5, remove_verified(T, R), !.
remove_verified([H|T], [H|R]) :- remove_verified(T, R).
以下提交规则非常有效,供以后参考 在Prolog中,变量必须以大写字符开头*
Prolog中的变量必须大写。submit和inserted是原子,而不是变量,作为Gerritt的非用户,我认为这不正确。抱歉,submit可能是正确的,因为您正在使用Univers构建某些内容。但inserted在我看来仍然是错误的。谢谢Daniel。您是对的,insert应该是insert,此规则在将insert更改为insert后生效。
submit_rule(S) :-
gerrit:default_submit(X),
X =.. [submit | Ls],
remove_verified(Ls, R),
S =.. [submit | R].
remove_verified([], []).
%remove_verified([label('Manager-Approval', _) | T], R) :- remove_verified(T, R), !.
remove_verified([label('Manager-Approval', _) | T], R) :- gerrit:commit_stats(_, Inserted, _), Inserted > 5, remove_verified(T, R), !.
remove_verified([H|T], [H|R]) :- remove_verified(T, R).