From 3233802ea49d56815e0821cc0af06784cc225877 Mon Sep 17 00:00:00 2001 From: Aleksey Pivovarov Date: Sun, 25 Feb 2018 04:02:59 +0300 Subject: [PATCH] vcs: do not load file content to memory to copy file EA-116778 - FTBE: FileUtil.loadFileBytes --- .../intellij/diff/tools/external/ExternalDiffToolUtil.java | 7 +++---- .../diff/impl/patch/apply/ApplyBinaryShelvedFilePatch.java | 7 ++++++- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/platform/diff-impl/src/com/intellij/diff/tools/external/ExternalDiffToolUtil.java b/platform/diff-impl/src/com/intellij/diff/tools/external/ExternalDiffToolUtil.java index eaef54567346..abc13a098b24 100644 --- a/platform/diff-impl/src/com/intellij/diff/tools/external/ExternalDiffToolUtil.java +++ b/platform/diff-impl/src/com/intellij/diff/tools/external/ExternalDiffToolUtil.java @@ -36,9 +36,7 @@ import com.intellij.openapi.ui.Messages; import com.intellij.openapi.util.Ref; import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.util.text.StringUtil; -import com.intellij.openapi.vfs.CharsetToolkit; -import com.intellij.openapi.vfs.VirtualFile; -import com.intellij.openapi.vfs.VirtualFileWithoutContent; +import com.intellij.openapi.vfs.*; import com.intellij.util.ArrayUtil; import com.intellij.util.LineSeparator; import com.intellij.util.PathUtil; @@ -363,7 +361,8 @@ public class ExternalDiffToolUtil { @Override public void apply() throws IOException { - myFile.setBinaryContent(FileUtil.loadFileBytes(myLocalFile)); + FileUtil.copy(myLocalFile, VfsUtilCore.virtualToIoFile(myFile)); + VfsUtil.markDirty(false, false, myFile); } } diff --git a/platform/vcs-impl/src/com/intellij/openapi/diff/impl/patch/apply/ApplyBinaryShelvedFilePatch.java b/platform/vcs-impl/src/com/intellij/openapi/diff/impl/patch/apply/ApplyBinaryShelvedFilePatch.java index a6aa84fe3df7..2c6189858bb5 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/diff/impl/patch/apply/ApplyBinaryShelvedFilePatch.java +++ b/platform/vcs-impl/src/com/intellij/openapi/diff/impl/patch/apply/ApplyBinaryShelvedFilePatch.java @@ -22,6 +22,8 @@ import com.intellij.openapi.vcs.FilePath; import com.intellij.openapi.vcs.changes.CommitContext; import com.intellij.openapi.vcs.changes.shelf.ShelvedBinaryFile; import com.intellij.openapi.vcs.changes.shelf.ShelvedBinaryFilePatch; +import com.intellij.openapi.vfs.VfsUtil; +import com.intellij.openapi.vfs.VfsUtilCore; import com.intellij.openapi.vfs.VirtualFile; import java.io.File; @@ -43,7 +45,10 @@ public class ApplyBinaryShelvedFilePatch extends ApplyFilePatchBase