SVN::Notify::HTML::ColorDiff - Subversion activity HTML notification with colorized diff
Use svnnotify in post-commit:
svnnotify --repos-path "$1" --revision "$2" \ --to developers@example.com --handler HTML::ColorDiff [options]
Use the class in a custom script:
use SVN::Notify::HTML::ColorDiff; my $notifier = SVN::Notify::HTML::ColorDiff->new(%params); $notifier->prepare; $notifier->execute;
This subclass of SVN::Notify::HTML sends HTML formatted email messages for Subversion activity, and if the with_diff parameter is specified (but not attach_diff), then a pretty colorized version of the diff will be included, rather than the plain text diff output by SVN::Notify::HTML.
with_diff
attach_diff
To use SVN::Notify::HTML::ColorDiff, simply follow the instructions in SVN::Notify, but when using svnnotify, specify --handler HTML::ColorDiff.
--handler HTML::ColorDiff
$notifier->output_css($file_handle);
This method starts outputs the CSS for the HTML message. SVN::Notify::HTML::ColorDiff adds extra CSS to its output so that it can nicely style the diff.
$notifier->output_diff($out_file_handle, $diff_file_handle);
Reads the diff data from $diff_file_handle and prints it to $out_file_handle for inclusion in the notification message. The diff is output with nice colorized HTML markup. Each line of the diff file is escaped by HTML::Entities::encode_entities().
$diff_file_handle
$out_file_handle
HTML::Entities::encode_entities()
If there are any diff filters, this method will do no HTML formatting, but redispatch to SVN::Notify::output_diff. See Writing Output Filters for details on filters.
diff
Add inline emphasis just on the text that changed between two lines, like this: http://www.badgers-in-foil.co.uk/projects/cvsspam/example.html.
Add links to To Do stuff to the top of the email, as pulled in from the diff. This might be tricky, since the diff is currently output after the message body. Maybe use absolute positioning CSS?
David E. Wheeler <david@kineticode.com>
Copyright (c) 2004-2009 Kineticode, Inc. Some Rights Reserved.
This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install SVN::Notify, copy and paste the appropriate command in to your terminal.
cpanm
cpanm SVN::Notify
CPAN shell
perl -MCPAN -e shell install SVN::Notify
For more information on module installation, please visit the detailed CPAN module installation guide.