From 32bd8522127fd23d09081ac5cac7ff7c4a919cfb Mon Sep 17 00:00:00 2001 From: Nadya Zabrodina Date: Mon, 3 Jun 2019 18:11:56 +0300 Subject: [PATCH] shelf: optimize - do not load patch file for each change GitOrigin-RevId: 85424b5e32e69cd2157dedc860aa7c88094f528c --- .../openapi/vcs/changes/shelf/ShelveChangesManager.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/shelf/ShelveChangesManager.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/shelf/ShelveChangesManager.java index 48901b37f6d5..6b0a4034a30f 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/shelf/ShelveChangesManager.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/shelf/ShelveChangesManager.java @@ -1166,8 +1166,9 @@ public class ShelveChangesManager implements PersistentStateComponent, try { final CommitContext commitContext = new CommitContext(); final List patches = new ArrayList<>(); - for (ShelvedChange change : listCopy.getChanges(myProject)) { - patches.add(change.loadFilePatch(myProject, commitContext)); + List filePatches = loadPatches(myProject, listCopy.PATH, commitContext); + for (ShelvedChange change : Objects.requireNonNull(listCopy.getChanges(myProject))) { + patches.add(find(filePatches, patch -> change.getBeforePath().equals(patch.getBeforeName()))); } writePatchesToFile(myProject, listCopy.PATH, patches, commitContext); }