- commitinfo is told the files that are being committed, but not the commit message. It can decide to deny the commit. You can control which CVS modules a given script runs against.
- verifyinfo is told the commit message, but not the files. It can decide to deny the commit. You can control which CVS modules a given script runs against.
- loginfo is told the commit message and files. But it can't decide to deny the commit since it happens after the commit. You can control which CVS modules a given script runs against.
A CVS module seems to be a root directory in a repository. You can't make it (at least not in an easy, obvious way) an arbitrary subdirectory.
So there are 3 properties that I need (file, commit message, ability to deny the commit), and 3 available hooks. Since there are 3 ways that it could suck for my needs, naturally each sucks in a different way!
Gah.
Ben