首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gerrit prolog规则-充分设置累积投票

Gerrit prolog规则-充分设置累积投票
EN

Stack Overflow用户
提问于 2018-06-11 15:52:42
回答 1查看 210关注 0票数 1

我想创建以下规则:

  • 该补丁将成为在提交只有3票或更多与+1,但不应该有一个表决+2,只有投票+1将考虑此标准。

我的规矩是:

代码语言:javascript
复制
% rule      : 1+1+1=2 Code-Review                                       
% rationale : introduce accumulative voting to determine if a change    
%             is submittable or not and make the change submittable        
%             if the total score is 3 or higher.                                                                                                                                                                   

sum_list([], 0).                                                        
sum_list([H | Rest], Sum) :- sum_list(Rest,Tmp), Sum is H + Tmp.        

add_category_min_score(In, Category, Min,  P) :-                        
    findall(X, gerrit:commit_label(label(Category,X),R),Z),             
    sum_list(Z, Sum),                                                   
    Sum >= Min, !,                                                      
    gerrit:commit_label(label(Category, V), U),                         
    V >= 1,                                                             
    !,                                                                  
    P = [label(Category,ok(U)) | In].                                   

add_category_min_score(In, Category,Min,P) :-                           
    P = [label(Category,need(Min)) | In].                               

submit_rule(S) :-                                                       
    gerrit:default_submit(X),                                           
    X =.. [submit | Ls],                                                
    gerrit:remove_label(Ls,label('Code-Review',_),NoCR),                
    add_category_min_score(NoCR,'Code-Review', 3, Labels),              
    S =.. [submit | Labels].

这个规则根本不起作用,问题是+2投票。我怎样才能重做这个规则才能按我的意愿工作呢?

EN

回答 1

Stack Overflow用户

发布于 2019-05-28 07:34:11

因此,您希望至少有三个可以添加+1和+2的审阅者是不允许的。

如果您删除了开发人员在项目配置中提供+2的权限,并使用prolog示例13,但只做了一些修改,该怎么办?

代码语言:javascript
复制
submit_rule(submit(CR)) :-
  sum(3, 'Code-Review', CR),
  % gerrit:max_with_block(-1, 1, 'Verified', V).

% Sum the votes in a category. Uses a helper function score/2
% to select out only the score values the given category.
sum(VotesNeeded, Category, label(Category, ok(_))) :-
  findall(Score, score(Category, Score), All),
  sum_list(All, Sum),
  Sum >= VotesNeeded,
  !.
sum(VotesNeeded, Category, label(Category, need(VotesNeeded))).

score(Category, Score) :-
  gerrit:commit_label(label(Category, Score), User).

% Simple Prolog routine to sum a list of integers.
sum_list(List, Sum)   :- sum_list(List, 0, Sum).
sum_list([X|T], Y, S) :- Z is X + Y, sum_list(T, Z, S).
sum_list([], S, S).
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50801694

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档