From c4fc27c44e471b343770fbc0c6f6216bd9bb3ba9 Mon Sep 17 00:00:00 2001 From: Kirill Likhodedov Date: Sun, 23 Jun 2019 23:55:12 +0100 Subject: [PATCH] git: use a more correct method to calculate number of updated files: IDEA-215906 It already exists to collect the UpdatedFiles. GitOrigin-RevId: b8fc3917f84872e5ef5bf55948b1da260c6116e9 --- .../src/git4idea/merge/MergeChangeCollector.java | 11 +++++++++++ .../src/git4idea/update/GitUpdateInfoAsLog.kt | 5 +++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/plugins/git4idea/src/git4idea/merge/MergeChangeCollector.java b/plugins/git4idea/src/git4idea/merge/MergeChangeCollector.java index c1f30453d760..c8ad93b10366 100644 --- a/plugins/git4idea/src/git4idea/merge/MergeChangeCollector.java +++ b/plugins/git4idea/src/git4idea/merge/MergeChangeCollector.java @@ -80,6 +80,17 @@ public class MergeChangeCollector { addAll(updatedFiles, FileGroup.REMOVED_FROM_REPOSITORY_ID, removed); } + public int calcUpdatedFilesCount() throws VcsException { + String revisionsForDiff = getRevisionsForDiff(); + if (revisionsForDiff == null) { + return 0; + } + + Set updated = new HashSet<>(); + getChangedFilesExceptUnmerged(updated, updated, updated, revisionsForDiff); + return updated.size() + getUnmergedPaths().size(); + } + /** * Returns absolute paths to files which are currently unmerged, and also populates myUnmergedPaths with relative paths. */ diff --git a/plugins/git4idea/src/git4idea/update/GitUpdateInfoAsLog.kt b/plugins/git4idea/src/git4idea/update/GitUpdateInfoAsLog.kt index 630c6c5d721c..41d585610790 100644 --- a/plugins/git4idea/src/git4idea/update/GitUpdateInfoAsLog.kt +++ b/plugins/git4idea/src/git4idea/update/GitUpdateInfoAsLog.kt @@ -33,8 +33,9 @@ import com.intellij.vcs.log.visible.VisiblePack import com.intellij.vcs.log.visible.VisiblePackChangeListener import com.intellij.vcs.log.visible.VisiblePackRefresherImpl import com.intellij.vcs.log.visible.filters.VcsLogFilterObject -import git4idea.changes.GitChangeUtils +import git4idea.GitRevisionNumber import git4idea.history.GitHistoryUtils +import git4idea.merge.MergeChangeCollector import git4idea.repo.GitRepository import org.jetbrains.annotations.CalledInAwt import java.util.* @@ -156,7 +157,7 @@ class GitUpdateInfoAsLog(private val project: Project, private fun calcUpdatedFilesCount(): Int { return calcCount { repository, range -> - GitChangeUtils.getDiffWithWorkingDir(project, repository.root, range.start.asString(), null, false, false).size + MergeChangeCollector(project, repository.root, GitRevisionNumber(range.start.asString())).calcUpdatedFilesCount() } }