GitPushResult (@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); }