The Windows command line has a max length of 8191 characters. If one wants to provide a list of individual files to fossil commands which exeeds this limit, the command fails. This is not a bug in fossil but in Windows.

Nevertheless it affects working with fossil. Today I wanted to check in a huge list of automatically generated files without checking in other changes of the project with the same commit. Unfortunately the command line exceeded the Windows limit and fossil stopped the operation with the comment that it doesn't know anything about file xyz (the filename was cut in the middle).

It isn't possible to commit only a specific subdirectory of a project (If you use a directory name as file argument for commit it again complains about knowing nothing about the directory, which I understand, because the directory is not an artifact).

Changing into a subdirectory and issuing the fossil commit from there doesn't help either. Anything which has changed in the project is committed.

The workarounds for this are to commit all other chages first and then commit the remaining files at once with a fossil commit without file names or to split the huge list into chunks with less than 8191 characters. The second would generate multiple entries for a commit which should be one and the first somehow interfers with the workflow.

The probably best way to handle it would be an additional commandline switch to use a file containing the list of files which should be handled by the fossil commands.