CVSspam Notification of CVS commits, by email CVS Email CVS log CVSspam emails you diffsDifferences; as determined by the unix 'diff' command when a change is committed to your CVSConcurrent Versions System repository. These HTML mails hyperlink to further details and use styling to emphasise information structure.
Example See a basic example and an artificially complicated test case email.
Features Every email includes colourised unified-diffs for all changed text files, and the committer's log comment. Configurable limits prevent emails becoming too large. If configured, mails can include links to Bugzilla bugs, RT tickets and JIRA issues, from specially formated log messages. If configured, mails can include links to a ViewCVS, CVSweb or Chora view of your repository. Particularly useful for seeing binary image files before and after a change. Written in RubyThe Ruby Programming Language.
GZipped Tar file
Initial release of port from Perl to Ruby
GZipped Tar file
Diff output not (less?) broken Generates prefixes like [CVS repositoryname] for mail subjects In some versions of ruby there was a syntax error On some setups it complained about diff having failed, when it hadn't Displays branch names and versions (with viewcvs links) in the top-of-mail file index Binary and Empty files only appear in the top-of-mail index, not in the 'diffs' section If the only change on a line is the dos vs. unix line type, try to highlight that Restricts length of the subject to 200 chars Tweaked HTML a bit for Evolution (but still no colour highlights)
GZipped Tar file
Truncate diff output after 1000 lines Make files in the same dir easier to spot in the top-of-mail index Make bug-regexp match more possibilities Fix some broken HTML syntax
GZipped Tar file
Really use the $cvs_prog from the config file Prevent error on adding directory to CVS Make URLs and email addresses from log comment into links in HTML Fix some cases of broken HTML generation Improved formatting
GZipped Tar file
Supports committing to many top-level projects under a CVSROOT at once, which used to cause an infinite loop Now reports branch name for deleted files (as well as added or modified ones) Changes in RCS keywords may now be suppressed in diff output (e.g. changes in $Revision$ number) The contents of files that are being removed may be excluded from mails The the character-encoding specified in the mail headers is configurable Small tweaks to the message formatting
GZipped Tar file
Fix temp-file security problems (and honour $TMPDIR) Encode non-ASCII characters in the email Subject header (per RFC2047) Support Chora as well as ViewCVS When all files where commited on the same branch, don't display the branch name against every file Make each component of a file's path into a link, and carry any branch name though to the dir-view (ViewCVS only) Tries to generate X-Originating-IP header for remote CVS commits Fixed more HTML issues
GZipped Tar file
Any CVS branch name is included in the email subject, and the names of files commited may be added too CVSweb is now a supprted web front-end The script can make better From addresses when using a CVS pserver with aliased usernames, using a new flag JIRA issue numbers and RT ticket numbers can be made into links from the log comment
GZipped Tar file
Support sending email using Net::SNMP for people with no MTA on their CVS server Support ViewCVS's multiple-repository feature Documentation improvements Fix some 'uninitialized variable' warnings
GZipped Tar file
Take sender email addresses from the CVSROOT/users config file, if it exists Truncate super-long lines in diff output Fix an error generating the email subject under certain circumstances Multi-repository support for CVSweb
GZipped Tar file
The expansion of a CVS username in CVSROOT/users may now contain whitespace, although we may still not be properly handling quotes in this file A 2 megabyte limit is placed on the amount of diff output included in emails. The limit is soft; we are allowed to pass the limit to prevent truncating a file's diff midway (but note that a seperate limit on the number of lines in an individual file's diff already exists) When using SMTP directly to send mail, a date header is now included, as its lack broke most mail-reader's sort-by-date functionality Fixes problems in commitinfo argument parsing that would prevent CVSspam working with the CVS 1.12.x series Work around occasional received broken pipe signal errors from CVS, in at least some cases
GZipped Tar file
Stop commits from some Mac CVS clients breaking the Subject, and all following headers Stop a '.' appearing on a line on its own in the commit log comment breaking this, and subsequent notification emails Made the $no_removed_file_diff option work Implemented a $no_added_file_diff option to suppress inclusion of diffs containing the contents of added files, and a $no_diff option, for supression diffs entirely Tried to fix breakage of the tag in the email subject (which creates text like #<Repository:0x402d08c4>, rather than the name of the top-level CVS project directory). Fix unconfirmed Altered some of the HTML-generating code making it less likely to produce super-long lines in the email markup Fixed unescaped ampersand in the HTML Supply missing repository_name attribute to CVSweb code
GZipped Tar file
Email addresses parsed from CVSROOT/users are now stripped of any surrounding quotes, thanks to a patch from Elan Ruusamäe. A numbering error that caused links from the top-of-mail index to point at the file next to the one they should have pointed at was fixed; as reported by several people. Ricardo Pardini provided a patch that handles [[Wiki Links]] in the commit log comment. Newer versions of Ruby don't allow scripts to modify their command-line arguments, so CVSspam altered to avoid doing that. (A problem that was introduced in release 0.2.11 while trying to fix another issue; thanks to Sven Köhler for checking this). Improve email address handling, so that we can now encode non-ASCII characters in any 'personal name' part of an address. Elan Ruusamäe pointed out the lack of encoding. Per a suggestion by Corporate Gadfly, the presence of the 'sticky option' on a file now causes CVSspam to avoid producing a diff for that file; handy when diff's inbuilt binary-file detection heuristic fails. The option can be specified when files are added to the repository, or added later with cvs admin. It is now possible to specify a charset for emails in the CVSROOT/loginfo configuration file (so the setting can vary between CVS modules). This feature was implemented by Elan Ruusamäe. Handle the case where someone has checked out the entire repository (cvs co .); avoid creating email subjects with prefix '[CVS .]'. Thanks to Christopher Petro for the patch. Allow the internal $max_lines_per_diff option to be set to nil, meaning 'no limit', following Christopher Petro's suggestion. The CSSCascading Style Sheet formatting for the 'commit log comment' portion of the email now allows long lines to be broken, in mail clients that support this feature. The documentation now gives an overview of the install process before diving into a description of the steps. Notification of commits to a given, single file can now be automatically threaded together by mail clients that support this, thanks to a suggestion by Elan Ruusamäe.
Email questions, bug reports, feature requests and patches to the development mailing list
Many Satisfied Customers!
Matthew Lenz The outlook express spell checker offers the word Cesspit as a replacement for the misspelled word CVSspam.
Sascha Sadeghian CVSspam - nomen est omen!
George Marrows Hmmm .. I wonder about a meeting of the badgers in foil and Whywhytheluckystiff's chunky bacon foxes .. perhaps in the next installment of the poignant guideWhy's (Poignant) Guide to Ruby?
Harry Jackson Chris Andrews wrote: > badgers-in-foil Is this with a little white wine, bay leaves, a smattering of diced onions, ground pepper and garlic to taste. I can heartily recommend it with Chicken.