diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/actions/ScheduleForAdditionAction.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/actions/ScheduleForAdditionAction.java index e2fae06241e4..3cc61225d252 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/actions/ScheduleForAdditionAction.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/actions/ScheduleForAdditionAction.java @@ -67,29 +67,33 @@ public class ScheduleForAdditionAction extends AnAction implements DumbAware { @NotNull List files, @NotNull Condition unversionedFileCondition, @Nullable ChangesBrowserBase browser) { - boolean result = true; + LocalChangeList targetChangeList = null; + Consumer> changeConsumer = null; - if (!files.isEmpty()) { - FileDocumentManager.getInstance().saveAllDocuments(); - - Consumer> consumer = browser == null ? null : changes -> { - browser.getViewer().includeChanges(changes); - }; - ChangeListManagerImpl manager = ChangeListManagerImpl.getInstanceImpl(project); - - LocalChangeList targetChangeList; - if (browser instanceof CommitDialogChangesBrowser) { - targetChangeList = ((CommitDialogChangesBrowser)browser).getSelectedChangeList(); - } - else { - targetChangeList = manager.getDefaultChangeList(); - } - List exceptions = manager.addUnversionedFiles(targetChangeList, files, unversionedFileCondition, consumer); - - result = exceptions.isEmpty(); + if (browser instanceof CommitDialogChangesBrowser) { + targetChangeList = ((CommitDialogChangesBrowser)browser).getSelectedChangeList(); } - return result; + if (browser != null) { + changeConsumer = changes -> browser.getViewer().includeChanges(changes); + } + + return addUnversioned(project, files, targetChangeList, changeConsumer, unversionedFileCondition); + } + + private static boolean addUnversioned(@NotNull Project project, + @NotNull List files, + @Nullable LocalChangeList targetChangeList, + @Nullable Consumer> changesConsumer, + @NotNull Condition unversionedFileCondition) { + if (files.isEmpty()) return true; + + ChangeListManagerImpl manager = ChangeListManagerImpl.getInstanceImpl(project); + if (targetChangeList == null) targetChangeList = manager.getDefaultChangeList(); + + FileDocumentManager.getInstance().saveAllDocuments(); + List exceptions = manager.addUnversionedFiles(targetChangeList, files, unversionedFileCondition, changesConsumer); + return exceptions.isEmpty(); } @NotNull