private static boolean notEqualVcsChanges()

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;
  }