@RequiresBackgroundThread
  public List<ShelvedChangeList> importChangeLists(@NotNull Collection<? extends VirtualFile> files,
                                                   @NotNull Consumer<? super VcsException> exceptionConsumer) {
    final List<ShelvedChangeList> result = new ArrayList<>(files.size());
    try {
      final FilesProgress filesProgress = new FilesProgress(files.size(), VcsBundle.message("shelve.import.to.progress"));
      for (VirtualFile file : files) {
        filesProgress.updateIndicator(file);
        String description = file.getNameWithoutExtension().replace('_', ' ');
        try {
          Path schemeNameDir = generateUniqueSchemePatchDir(description, true);
          Path patchFile = getPatchFileInConfigDir(schemeNameDir);
          List<? extends FilePatch> filePatches = loadPatchesWithoutContent(myProject, file.toNioPath(), new CommitContext());
          if (!filePatches.isEmpty()) {
            Files.copy(file.toNioPath(), patchFile);
            ShelvedChangeList list = new ShelvedChangeList(patchFile, description, new SmartList<>(),
                                                           createShelvedChangesFromFilePatches(myProject, patchFile, filePatches),
                                                           file.getTimeStamp());
            list.setName(schemeNameDir.getFileName().toString());
            schemeManager.addScheme(list, false);
            result.add(list);
          }
        }
        catch (Exception e) {
          exceptionConsumer.accept(new VcsException(e));
        }
      }
    }
    finally {
      notifyStateChanged();
    }
    return result;
  }
@RequiresBackgroundThread
  public List<ShelvedChangeList> importChangeLists(@NotNull Collection<? extends VirtualFile> files,
                                                   @NotNull Consumer<? super VcsException> exceptionConsumer)