I did a bit more digging on this. What I'm attempting to do is to move a bunch of Scala code into another package, so I ran something like:

fossil mv another/directory

What I'd expect to happen is that Fossil will move all the files, honoring the directory structure. So if I had I'd expect to find that in

What it did in this instance, unfortunately, was to attempt flattening the structure. That is, all files in the first directory were indiscriminately dumped into the second without subdirectories. Fortunately it failed or I might not have spotted it until I committed the change. The failure was caused by there being .keep files in some of the subdirectories such that they'll still exist even if empty. Fossil tried dumping these multiple files into the wrongly-flattened directory, and SQLite threw a constraint complaint.

Thanks, let me know if you need any more details.