public List commit()

in src/net/sourceforge/transparent/Checkin/CCaseCheckinEnvironment.java [137:188]


  public List<VcsException> commit(List<Change> changes,
                                   String comment,
                                   @NotNull NullableFunction<Object, Object> parametersHolder,
                                   Set<String> feedback)
  {
    List<VcsException> errors = new ArrayList<>();
    HashSet<FilePath> processedFiles = new HashSet<>();
    if (! SystemInfo.isWindows) {
      comment = comment.replace( "\"", "\\\"");
    }

    clearTemporaryStatuses( changes );
    storeChangeListName( changes );

    adjustChangesWithRenamedParentFolders( changes );

    try
    {
      initProgress( changes.size() );

      //  Committing of renamed folders must be performed first since they
      //  affect all other checkings under them (except those having status
      //  "ADDED") since:
      //  - if modified file is checked in before renamed folder checkin then
      //    we need to checkin from (yet) nonexisting file into (already) non-
      //    existing space. It is too tricky to recreate the old folders
      //    structure and commit from out of there.
      //  - if modified file is checked AFTER the renamed folder has been
      //    checked in, we just have to checkin in into the necessary place,
      //    just get the warning that we checking in file which was checked out
      //    from another location. Supress it.
      commitRenamedFolders( changes, comment, errors );

      commitDeleted( changes, comment, errors );

      //  IMPORTANT!
      //  Committment of the changed files must be performed first because of
      //  specially processed exceptions described in the ChangeProvider.
      commitChanged( changes, comment, processedFiles, errors );
      commitNew( changes, comment, processedFiles, errors );
    }
    catch( ProcessCanceledException e )
    {
      //  Nothing to do, just refresh the files which have been already committed.
    }
    checkForUnchangedFolders(changes, errors, comment);

    VfsUtil.markDirtyAndRefresh(true, true, false, map2Array(processedFiles, VirtualFile.class, FilePath::getVirtualFile));
    VcsDirtyScopeManager.getInstance(project).filesDirty(map(processedFiles, FilePath::getVirtualFile), null);

    return errors;
  }