gerrit prolog提交规则条件检查
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了gerrit prolog提交规则条件检查相关的知识,希望对你有一定的参考价值。
如果插入的代码超过定义的阈值,我们使用gerrit 2.11添加经理批准标签。 prolog rules.pl如下。
我可以使用第7行和注释第8行删除“Manager-Approval”;但如果注释第7行和第8行,则“经理批准”始终存在。
如果我要使用以下行替换第8行,那么经理批准也在那里,这是否意味着commit_stats()
总是返回true
,而第8行将不会运行remove_verified()
调用?
我们是prolog的新手,任何地狱都将非常感激。
remove_verified([label('Manager-Approval',_)| T],R): - inserted = 10,inserted> 5,remove_verified(T,R),!
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中,变量必须以大写字母*开头
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).
以上是关于gerrit prolog提交规则条件检查的主要内容,如果未能解决你的问题,请参考以下文章