in git-agent/src/main/java/jetbrains/buildServer/buildTriggers/vcs/git/agent/AgentCommitLoaderFactory.java [148:187]
public boolean loadCommitInBranch(@NotNull String sha, @NotNull String branch, boolean enforceFetch) throws VcsException {
final FetchHeadsMode fetchHeadsMode = myPluginConfig.getFetchHeadsMode();
switch (fetchHeadsMode) {
case ALWAYS:
myLogger.message(getForcedHeadsFetchMessage());
beforeFetch();
fetchAllBranches();
if (isSingleBranchFetchRequired(branch) && isFetchRequired(sha, branch)) {
fetchBranch(branch);
}
break;
case BEFORE_BUILD_BRANCH:
if (!isFetchRequired(sha, branch, enforceFetch)) return true;
beforeFetch();
fetchAllBranches();
if (isSingleBranchFetchRequired(branch) && isFetchRequired(sha, branch)) {
fetchBranch(branch);
}
break;
case AFTER_BUILD_BRANCH:
if (!isFetchRequired(sha, branch, enforceFetch)) return true;
beforeFetch();
fetchBranch(branch);
if (hasRevision(sha)){
return true;
}
fetchAllBranches();
break;
default:
throw new VcsException("Unknown FetchHeadsMode: " + fetchHeadsMode);
}
return hasRevision(sha);
}