Using the commitinfo file, it is possible to perform pre-processing on a file before it is committed to the repository.
Example:
documentation/*.sgml /home/cvsroot/CVSROOT/validate-sgml
Can be used to validate syntax or check whether it compiles correctly.
If the function called exits with a non-zero status, the commit is aborted.