
The PRED_commit_message_1 rule doesn't need the whole PatchSetInfo values to be loaded to function properly: only the commit message is required. This change improves this by only loading the commit message from the repository. Fix a test case: the commit_message predicate does not use the account index anymore. Before that, it was indirectly used to gather informations on the author and committer. These two informations were loaded but never used. Change-Id: I3a964bae3512ee6fba7895739f32fd592e8595bf
52 lines
1.5 KiB
Java
52 lines
1.5 KiB
Java
// Copyright (C) 2011 The Android Open Source Project
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
package gerrit;
|
|
|
|
import com.google.gerrit.server.rules.StoredValues;
|
|
import com.googlecode.prolog_cafe.exceptions.PrologException;
|
|
import com.googlecode.prolog_cafe.lang.Operation;
|
|
import com.googlecode.prolog_cafe.lang.Predicate;
|
|
import com.googlecode.prolog_cafe.lang.Prolog;
|
|
import com.googlecode.prolog_cafe.lang.SymbolTerm;
|
|
import com.googlecode.prolog_cafe.lang.Term;
|
|
|
|
/**
|
|
* Returns the commit message as a symbol
|
|
*
|
|
* <pre>
|
|
* 'commit_message'(-Msg)
|
|
* </pre>
|
|
*/
|
|
public class PRED_commit_message_1 extends Predicate.P1 {
|
|
public PRED_commit_message_1(Term a1, Operation n) {
|
|
arg1 = a1;
|
|
cont = n;
|
|
}
|
|
|
|
@Override
|
|
public Operation exec(Prolog engine) throws PrologException {
|
|
engine.setB0();
|
|
Term a1 = arg1.dereference();
|
|
|
|
String commitMessage = StoredValues.COMMIT_MESSAGE.get(engine);
|
|
|
|
SymbolTerm msg = SymbolTerm.create(commitMessage);
|
|
if (!a1.unify(msg, engine.trail)) {
|
|
return engine.fail();
|
|
}
|
|
return cont;
|
|
}
|
|
}
|