Index: trac/versioncontrol/web_ui/changeset.py
===================================================================
--- trac/versioncontrol/web_ui/changeset.py	(revision 7667)
+++ trac/versioncontrol/web_ui/changeset.py	(working copy)
@@ -25,10 +25,11 @@
 import re
 from StringIO import StringIO
 import time
+from fnmatch import fnmatchcase
 
 from genshi.builder import tag
 
-from trac.config import Option, BoolOption, IntOption
+from trac.config import Option, BoolOption, IntOption, ListOption
 from trac.core import *
 from trac.mimeview import Mimeview, is_binary, Context
 from trac.perm import IPermissionRequestor
@@ -164,6 +165,13 @@
         If this option is disabled, changeset messages will be rendered as
         pre-formatted text.""")
 
+    suppress_file_diff = ListOption('changeset', 'suppress_file_diff', '', 
+ 	"""List of files for which no diffs should be displayed in the changesets. 
+ 	Leave this option empty if users should see the diffs for all files 
+ 	(under the constraints of options like max_diff_bytes and friends, 
+ 	of course). Otherwise set it to a comma-separated list of names. 
+ 	The list contains of glob patterns, i.e. "*" can be used as wildcard.""") 
+    
     # INavigationContributor methods
 
     def get_active_navigation_item(self, req):
@@ -507,6 +515,13 @@
             The list is empty when no differences between comparable files
             are detected, but the return value is None for non-comparable files.
             """
+            patterns = self.suppress_file_diff
+            if filter(None, [fnmatchcase(old_node.path, p) for p in patterns]): 
+                return None 
+ 	     
+            if filter(None, [fnmatchcase(new_node.path, p) for p in patterns]): 
+                return None 
+
             old_content = old_node.get_content().read()
             if is_binary(old_content):
                 return None

