boolean (@NotNull VirtualFile file) { if (!isMyVcs(file)) return false; startOperation(file); if (SvnUtil.isAdminDirectory(file)) return true; final VcsShowConfirmationOption.Value value = myDeleteConfirmation.getValue(); if (VcsShowConfirmationOption.Value.DO_NOTHING_SILENTLY.equals(value)) return false; final File ioFile = getIOFile(file); if (!SvnUtil.isSvnVersioned(myVcs, ioFile.getParentFile()) || SvnUtil.isWorkingCopyRoot(ioFile)) { return false; } Status status = getFileStatus(ioFile); if (status == null || status.is(StatusType.STATUS_UNVERSIONED, StatusType.STATUS_OBSTRUCTED, StatusType.STATUS_EXTERNAL, StatusType.STATUS_IGNORED)) { return false; } else if (status.is(StatusType.STATUS_DELETED)) { if (isUndo()) { moveToUndoStorage(file); } return true; } else { if (isAboveSourceOfCopyOrMove(ioFile)) { myDeletedFiles.add(ioFile); return true; } if (status.is(StatusType.STATUS_ADDED)) { try { createRevertAction(ioFile, false).execute(); } catch (VcsException e) { // ignore } } else { myDeletedFiles.add(ioFile); // packages deleted from disk should not be deleted from svn (IDEADEV-16066) if (file.isDirectory() || isUndo()) return true; } return false; } }