List<Change> (@NotNull Collection<? extends Change> changes, boolean honorExcludedFromCommit) { return PartialChangesUtil.processPartialChanges( myProject, changes, true, (partialChanges, tracker) -> { if (!tracker.hasPartialChangesToCommit()) return false; if (!tracker.isOperational()) { LOG.warn("Skipping non-operational tracker: " + tracker); return false; } if (!honorExcludedFromCommit) { Set<String> selectedIds = ContainerUtil.map2Set(partialChanges, change -> change.getChangeListId()); if (selectedIds.containsAll(tracker.getAffectedChangeListsIds())) return false; } List<String> changelistIds = ContainerUtil.map(partialChanges, change -> change.getChangeListId()); tracker.rollbackChanges(changelistIds, honorExcludedFromCommit); return true; } ); }