diff --git a/plugins/git4idea/src/git4idea/GitCommit.java b/plugins/git4idea/src/git4idea/GitCommit.java index 823d6275102a..942a05931af6 100644 --- a/plugins/git4idea/src/git4idea/GitCommit.java +++ b/plugins/git4idea/src/git4idea/GitCommit.java @@ -22,6 +22,7 @@ import com.intellij.openapi.vcs.VcsException; import com.intellij.openapi.vcs.changes.Change; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.util.containers.ContainerUtil; +import com.intellij.util.containers.WeakStringInterner; import com.intellij.vcs.log.Hash; import com.intellij.vcs.log.VcsUser; import com.intellij.vcs.log.impl.VcsChangesLazilyParsedDetails; @@ -43,6 +44,7 @@ import java.util.List; */ public final class GitCommit extends VcsChangesLazilyParsedDetails { private static final Logger LOG = Logger.getInstance(GitCommit.class); + private static final WeakStringInterner ourPathsInterner = new WeakStringInterner(); @NotNull private final GitLogUtil.DiffRenameLimit myRenameLimit; public GitCommit(Project project, @NotNull Hash hash, @NotNull List parents, long commitTime, @NotNull VirtualFile root, @@ -89,7 +91,7 @@ public final class GitCommit extends VcsChangesLazilyParsedDetails { } private class UnparsedChanges extends VcsChangesLazilyParsedDetails.UnparsedChanges { - @NotNull private final String myRootPath = getRoot().getPath(); + @NotNull private final String myRootPath = ourPathsInterner.intern(getRoot().getPath()); private UnparsedChanges(@NotNull Project project, @NotNull List> changesOutput) {