@NotNull ShelvedChangeList createChangelistCopyWithChanges(@NotNull ShelvedChangeList changeList, @NotNull Path targetDir)
    throws IOException {
    Path newPath = getPatchFileInConfigDir(targetDir);
    Files.createDirectories(newPath.getParent());
    Files.copy(changeList.getPath(), newPath);
    changeList.loadChangesIfNeeded(myProject);

    ShelvedChangeList listCopy = new ShelvedChangeList(newPath, changeList.getDescription(),
                                                       copyBinaryFiles(changeList, targetDir),
                                                       copyTextFiles(myProject, changeList, newPath),
                                                       changeList.getDate().getTime());
    listCopy.markToDelete(changeList.isMarkedToDelete());
    listCopy.setRecycled(changeList.isRecycled());
    listCopy.setDeleted(changeList.isDeleted());
    listCopy.setName(targetDir.getFileName().toString());
    return listCopy;
  }
@NotNull ShelvedChangeList createChangelistCopyWithChanges(@NotNull ShelvedChangeList changeList, @NotNull Path targetDir)