@NotNull
  private List<Change> revertPartialChanges(@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;
      }
    );
  }
@NotNull
  private List<Change> revertPartialChanges(@NotNull Collection<? extends Change> changes, boolean honorExcludedFromCommit)