Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/prolog/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
gerrit prolog提交规则条件检查_Prolog_Gerrit - Fatal编程技术网

gerrit prolog提交规则条件检查

gerrit 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,删除已

如果插入的代码超过定义的阈值,我们将使用gerrit 2.11添加经理批准标签。prolog rules.pl如下所示

我可以使用第7行和第8行删除经理批准;但是,如果注释了第7行和激活的第8行,则经理的批准始终存在

如果我要用下面的行替换第8行,经理的批准也在那里,这是否意味着commit_stats总是返回true,而第8行不会运行remove_verified call

我们在prolog中是新手,任何地狱都将受到极大的赞赏

删除已验证[标签“经理批准”,R:-插入=10,插入>5,删除已验证,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中,变量必须以大写字符开头*
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).