Skip to content
Snippets Groups Projects
Commit ea197eb9 authored by Georg Seibt's avatar Georg Seibt :nerd:
Browse files

add a warning in case of failure to the checkAncestry(...) method

parent d387515a
No related branches found
No related tags found
No related merge requests found
......@@ -4,10 +4,15 @@ import java.time.Instant;
import java.time.OffsetDateTime;
import java.time.ZoneId;
import java.util.Optional;
import java.util.function.Function;
import java.util.logging.Logger;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import de.uni_passau.fim.seibt.gitwrapper.process.ProcessExecutor;
import de.uni_passau.fim.seibt.gitwrapper.process.ProcessExecutor.ExecRes;
import de.uni_passau.fim.seibt.gitwrapper.process.ToolWrapper;
/**
* A {@link Commit} made in a {@link Repository}.
*/
......@@ -52,8 +57,22 @@ public class Commit extends Reference {
* <code>false</code>, if not and an {@link Optional#EMPTY empty optional}, if an error occurred.
*/
public Optional<Boolean> checkAncestry(Commit ancestor) {
return git.exec(repo.getDir(), " merge-base", "--is-ancestor", ancestor.getId(), id).map(execRes ->
execRes.exitCode == 0 ? Boolean.TRUE : execRes.exitCode == 1 ? Boolean.FALSE : null);
Optional<ExecRes> res = git.exec(repo.getDir(), "merge-base", "--is-ancestor", ancestor.getId(), id);
Function<ExecRes, Boolean> toBoolean = execRes -> {
if (execRes.exitCode == 0) {
return Boolean.TRUE;
}
if (execRes.exitCode == 1) {
return Boolean.FALSE;
}
LOG.warning(() -> "Failed to determine whether '" + ancestor + "' is an ancestor of '" + this + "'.");
return null;
};
return res.map(toBoolean);
}
/**
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment