CVSreport produces text or enhanced HTML activity reports from a local or
remote CVS repository. It can be used to extract activity information from
any time span, or to automatically generate reports and store/send them on
commit events.

CVSreport can extract changesets from a CVS repository history. A changeset
is a set of commit operations (addition, removal, modification) which happen
along a single invocation of the cvs commit command. Used from client side,
it produces a report starting from an arbitrary date from a simple working
copy. On the server side, it can automatically generate reports and mail
them upon commit.

Homepage:
https://savannah.nongnu.org/projects/cvsreport
