in git-server/src/main/java/jetbrains/buildServer/buildTriggers/vcs/git/gitProxy/GitProxyChangesCollector.java [789:817]
private static boolean notEqualVcsChanges(@NotNull List<VcsChange> changesJgit, @NotNull List<VcsChange> changesGitProxy, @Nullable List<String> submodulePrefixes) {
// currently we don't expect git proxy to return file changes in submodules, so we need to filter them out
// TODO remove this if we start supporting submodules
if (submodulePrefixes != null) {
changesJgit = changesJgit.stream().filter(change -> {
for (String prefix : submodulePrefixes) {
if (change.getFileName().startsWith(prefix)) {
return false;
}
}
return true;
}).collect(Collectors.toList());
}
if (changesJgit.size() != changesGitProxy.size()) return true;
for (int i = 0; i < changesGitProxy.size(); i++) {
VcsChange change1 = changesJgit.get(i);
VcsChange change2 = changesGitProxy.get(i);
if (!Objects.equals(change1.getType(), change2.getType())) return true;
if (!Objects.equals(change1.getAfterChangeRevisionNumber(), change2.getAfterChangeRevisionNumber())) return true;
if (!Objects.equals(change1.getBeforeChangeRevisionNumber(), change2.getBeforeChangeRevisionNumber())) return true;
if (!Objects.equals(change1.getFileName(), change2.getFileName())) return true;
if (!Objects.equals(change1.getRelativeFileName(), change2.getRelativeFileName())) return true;
}
return false;
}