// called NOT under ChangeListManagerImpl lock
  public void notifyStartProcessingChanges(final VcsModifiableDirtyScope scope) {
    final Collection<Change> oldChanges = new ArrayList<Change>();
    for (LocalChangeList list : myMap.values()) {
      final Collection<Change> affectedChanges =
          ((LocalChangeListImpl) list).startProcessingChanges(myProject, scope);
      if (!affectedChanges.isEmpty()) {
        oldChanges.addAll(affectedChanges);
      }
    }
    for (Change change : oldChanges) {
      myIdx.changeRemoved(change);
    }
    // scope should be modified for correct moves tracking
    correctScopeForMoves(scope, oldChanges);

    myLocallyDeleted.cleanAndAdjustScope(scope);
    mySwitchedHolder.cleanAndAdjustScope(scope);
  }