void (@NotNull List<? extends Change> changes, @NotNull List<? super VcsException> exceptions, @NotNull RollbackProgressListener listener) { final UnversionedAndNotTouchedFilesGroupCollector collector = new UnversionedAndNotTouchedFilesGroupCollector(); final ChangesChecker checker = new ChangesChecker(mySvnVcs, collector); checker.gather(changes); exceptions.addAll(checker.getExceptions()); final Reverter reverter = new Reverter(mySvnVcs, listener, exceptions); reverter.moveRenamesToTmp(collector); reverter.revert(checker.getForAdds(), true); reverter.revert(checker.getForDeletes(), true); reverter.revert(checker.getForEdits(), false); reverter.moveGroup(); for (Couple<File> pair : collector.getToBeDeleted()) { if (pair.getFirst().exists()) { FileUtil.delete(pair.getSecond()); } } }