private @NotNull GitPushResult prepareCombinedResult(@NotNull Map<GitRepository, GitPushRepoResult> allRoots,
                                                       @NotNull Map<GitRepository, GitUpdateResult> updatedRoots,
                                                       @NotNull Map<GitRepository, String> preUpdatePositions,
                                                       @Nullable Label beforeUpdateLabel,
                                                       @Nullable Label afterUpdateLabel) {
    Map<GitRepository, GitPushRepoResult> results = new HashMap<>();
    UpdatedFiles updatedFiles = UpdatedFiles.create();
    for (Map.Entry<GitRepository, GitPushRepoResult> entry : allRoots.entrySet()) {
      GitRepository repository = entry.getKey();
      GitPushRepoResult simpleResult = entry.getValue();
      GitUpdateResult updateResult = updatedRoots.get(repository);
      if (updateResult == null) {
        results.put(repository, simpleResult);
      }
      else {
        collectUpdatedFiles(updatedFiles, repository, preUpdatePositions.get(repository));
        results.put(repository, GitPushRepoResult.addUpdateResult(simpleResult, updateResult));
      }
    }

    return new GitPushResult(results, updatedFiles, beforeUpdateLabel, afterUpdateLabel, myUpdatedRanges);
  }
private @NotNull GitPushResult prepareCombinedResult(@NotNull Map<GitRepository, GitPushRepoResult> allRoots,
                                                       @NotNull Map<GitRepository, GitUpdateResult> updatedRoots,
                                                       @NotNull Map<GitRepository, String> preUpdatePositions,
                                                       @Nullable Label beforeUpdateLabel,
                                                       @Nullable Label afterUpdateLabel)