Index: mailer.py
===================================================================
--- mailer.py	(revision 28773)
+++ mailer.py	(working copy)
@@ -612,7 +612,18 @@
       if suppress == 'yes':
         self.add = False
 
+    diff_exclude = cfg.get('diff_exclude', group, params)
+    if diff_exclude:
+        self.diff_exclude_re = re.compile(diff_exclude)
+    else:
+        self.diff_exclude_re = None
 
+  def excluded(self, path):
+    if self.diff_exclude_re:
+        return self.diff_exclude_re.match(path)
+    else:
+        return False
+
 class DiffURLSelections:
   def __init__(self, cfg, group, params):
     self.cfg = cfg
@@ -797,7 +808,7 @@
         diff_url = self.diffurls.get_delete_url(self.repos.rev, change)
 
         # show the diff?
-        if self.diffsels.delete:
+        if self.diffsels.delete and not self.diffsels.excluded(change.base_path):
           diff = svn.fs.FileDiff(self.repos.get_root(change.base_rev),
                                  base_path, None, None, self.pool)
 
@@ -818,7 +829,7 @@
             diff_url = self.diffurls.get_copy_url(self.repos.rev, change)
 
             # show the diff?
-            if self.diffsels.modify:
+            if self.diffsels.modify and not self.diffsels.excluded(change.path):
               diff = svn.fs.FileDiff(self.repos.get_root(change.base_rev),
                                      base_path,
                                      self.repos.root_this, change.path,
@@ -831,7 +842,7 @@
           else:
             # this file was copied.
             kind = 'C'
-            if self.diffsels.copy:
+            if self.diffsels.copy and not self.diffsels.excluded(change.path):
               diff = svn.fs.FileDiff(None, None, self.repos.root_this,
                                      change.path, self.pool)
               label1 = '/dev/null\t00:00:00 1970\t' \
@@ -848,7 +859,7 @@
           diff_url = self.diffurls.get_add_url(self.repos.rev, change)
 
           # show the diff?
-          if self.diffsels.add:
+          if self.diffsels.add and not self.diffsels.excluded(change.path):
             diff = svn.fs.FileDiff(None, None, self.repos.root_this,
                                    change.path, self.pool)
             label1 = '/dev/null\t00:00:00 1970\t' \
@@ -868,7 +879,7 @@
         diff_url = self.diffurls.get_modify_url(self.repos.rev, change)
 
         # show the diff?
-        if self.diffsels.modify:
+        if self.diffsels.modify and not self.diffsels.excluded(change.path):
           diff = svn.fs.FileDiff(self.repos.get_root(change.base_rev),
                                  base_path,
                                  self.repos.root_this, change.path,


