UpdateSession (Project project, FilePath[] filePaths, UpdatedFiles updatedFiles, ProgressIndicator progressIndicator, UpdateMethod updateMethod, Map<GitRepository, GitBranchPair> updateConfig) { GitRepositoryManager manager = GitRepositoryManager.getInstance(project); Set<GitRepository> repositories = ContainerUtil.map2SetNotNull(asList(filePaths), manager::getRepositoryForFile); final GitUpdateProcess gitUpdateProcess = new GitUpdateProcess(project, progressIndicator, repositories, updatedFiles, updateConfig, true, true); boolean result = gitUpdateProcess.update(updateMethod).isSuccess(); Map<GitRepository, HashRange> updatedRanges = gitUpdateProcess.getUpdatedRanges(); GitUpdateInfoAsLog.NotificationData notificationData = updatedRanges != null ? new GitUpdateInfoAsLog(project, updatedRanges).calculateDataAndCreateLogTab() : null; return new GitUpdateSession(project, notificationData, result, gitUpdateProcess.getSkippedRoots()); }