How are changes reported? Are there per file commit messages?

ChangeSets are the published artifact in the database repository. This provides a list of all the files changes and using the tools, can easily display the differences between the current, previous, or workspace version.