---
name: "SVN::Notify::HTML::ColorDiff"
section: "3pm"
platform: "linux"
package: "libsvn-notify-perl"
version: "2.87-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/SVN::Notify::HTML::ColorDiff"
---

# SVN::Notify::HTML::ColorDiff(3pm)

Subversion activity HTML notification with colorized diff

## Name

SVN::Notify::HTML::ColorDiff - Subversion activity HTML notification with colorized diff

## Synopsis

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;
```

## Description

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.

## Usage

To use SVN::Notify::HTML::ColorDiff, simply follow the instructions in SVN::Notify, but when using *svnnotify*, specify `"--handler HTML::ColorDiff"`.

## Instance Interface

### Instance Methods

*output\_css*

```
  $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.

*output\_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()"`.

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.

## See Also

- SVN::Notify

  - SVN::Notify::HTML

  - CVSspam \<http://www.badgers-in-foil.co.uk/projects/cvsspam/\>

  ## To Do

- •

  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?

##

## Author

David E. Wheeler \<david@justatheory.com\>

## Copyright and License

Copyright (c) 2004-2018 David E. Wheeler. Some Rights Reserved.

This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
