diff -ubrN bugzilla-2.16.5/globals.pl bugzilla-2.16.5.new/globals.pl
--- bugzilla-2.16.5/globals.pl	2004-03-03 07:28:16.000000000 +0000
+++ bugzilla-2.16.5.new/globals.pl	2004-05-07 13:40:27.000000000 +0100
@@ -22,6 +22,8 @@
 #                 Jake <jake@acutex.net>
 #                 Bradley Baetz <bbaetz@cs.mcgill.ca>
 #                 Christopher Aillon <christopher@aillon.com>
+#                 Dave Swegen <dswegen@software.plasmon.com>
+#                 Steve McIntyre <smcintyre@software.plasmon.com>
 
 # Contains some global variables and routines used throughout bugzilla.
 
@@ -100,6 +102,9 @@
 # Contains the version string for the current running Bugzilla.
 $::param{'version'} = '2.16.5';
 
+# Set this to the URL of the viewcvs installation
+my $viewcvsurl = '';
+
 $::dontchange = "--do_not_change--";
 $::chooseone = "--Choose_one:--";
 $::defaultqueryname = "(Default query)";
@@ -1068,6 +1073,10 @@
 
     # And undo the quoting of "#" characters.
     $text =~ s/%#/#/g;
+    $text =~ s~(?<=FILES\ CHECKED\ IN:)
+                   (.*)
+                   ~GetCommitLinks($1)
+                   ~egsx;
 
     return $text;
 }
@@ -1759,6 +1768,58 @@
     return $formats->{$format};
 }
 
+sub GetCommitLinks { 
+    my ($text) = (@_);
+    return $text unless $text;
+
+    if (! $viewcvsurl) {
+        return $text;
+    }
+    my $res = "";
+    my $cvsurl = $viewcvsurl;
+
+    my @foo = split("\n", $text);
+    shift @foo; 
+    my $i;      
+
+    $res = "\n<table width=\"60%\" cellspacing=0 cellpadding=\"0\">";
+    foreach $i (@foo) {
+        my $rev = reverse $i;
+        my @entry = split(/\s+/, $rev, 3);
+        my $fname = reverse $entry[2];
+        my $rev1 = reverse $entry[1];
+        my $rev2 = reverse $entry[0];
+
+        $fname =~ s~^\s*~~g;
+        my $filelink = "<a href=\"$cvsurl/$fname\">$fname</a>";
+
+        my $rev1link;
+        my $rev2link;
+        my $difflink;
+        my $style = 'style="padding-left: 6mm"';
+
+        if ($rev1 =~ /NONE/) {
+            $rev1link = "NONE (added)";
+            $rev2link = "<a href=\"$cvsurl/*checkout*/$fname?rev=$rev2\">$rev2</a>";
+            $difflink = "<em>No diff</em>";
+        } elsif ($rev2 =~ /NONE/) {
+            $rev1link = "<a href=\"$cvsurl/*checkout*/$fname?rev=$rev1\">$rev1</a>";
+            $rev2link = "NONE (removed)";
+            $difflink = "<em>No diff</em>";
+        } else {
+            $rev1link = "<a href=\"$cvsurl/*checkout*/$fname?rev=$rev1\">$rev1</a>";
+            $rev2link = "<a href=\"$cvsurl/*checkout*/$fname?rev=$rev2\">$rev2</a>";
+            $difflink = "<a href=\"$cvsurl/$fname.diff?r1=$rev1&r2=$rev2\">View diff</a>";
+        }
+
+
+        $res = "$res <tr>\n<td>$filelink</td> <td $style>$rev1link</td> <td $style>$rev2link</td> <td $style>$difflink</td></tr>\n";
+    }
+
+    $res = "$res </table>\n";
+    return $res;
+}
+
 ###############################################################################
 
 # Define the global variables and functions that will be passed to the UI
@@ -1786,4 +1847,5 @@
     'user_agent' => $ENV{'HTTP_USER_AGENT'} ,
   };
 
+
 1;
