Runnable (final Map<VirtualFile, File> copyFromMap, final Collection<? extends VirtualFile> filesToProcess, final List<? super VcsException> exceptions) { return () -> { for (VirtualFile file : filesToProcess) { final File ioFile = virtualToIoFile(file); try { final File copyFrom = copyFromMap.get(file); if (copyFrom != null) { try { new ActionWithTempFile(ioFile) { @Override protected void executeInternal() throws VcsException { // not recursive new RepeatSvnActionThroughBusy() { @Override protected void executeImpl() throws VcsException { myVcs.getFactory(copyFrom).createCopyMoveClient().copy(copyFrom, ioFile, true, false); } }.execute(); } }.execute(); } catch (VcsException e) { exceptions.add(e); } } else { new RepeatSvnActionThroughBusy() { @Override protected void executeImpl() throws VcsException { myVcs.getFactory(ioFile).createAddClient().add(ioFile, null, false, false, true, null); } }.execute(); } VcsDirtyScopeManager.getInstance(myVcs.getProject()).fileDirty(file); } catch (VcsException e) { exceptions.add(e); } } }; }