The commit action does several at once:
The script uses the PLCopen Export to get the content out of the project. Then it transforms the result into Markdown, using XSLT.
First, it is more than enough to support ST.
Commit the changes in the project with CODESYS SVN to the repository that is connected with it (no changes done).
Add / commit the project file and exported documentation, using external SVN client.
Note: The local SVN thing would be ideal with SharpSVN, if this is available from within IronPython. If not, we force the user to have SVN installed.
The import or commit actions are always searching for all libraries and projects in the folder. Those are committed one-by-one. The checkin will be done in a direct subfolder, named after the library or projects basename.
After that, PlcOpen XML (as an inermediate format) and a markdown export of the project or library will be generated and committed, also using the basename.
Note, that the commit using the external SVN client should only be done on specific files. Otherwise there is a risk, that modifications are implicitely committed without an acknowledge of the user.
Note 2, the same commit message should be used for all single commits. First, passing this message as a parameter to the tool should be enough.
The build of the markdown and CODESYS packages is currently a separate step. It can be done in advance to a commit, if desired.