summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjustdave%syndicomm.com <>2001-08-09 15:12:18 +0200
committerjustdave%syndicomm.com <>2001-08-09 15:12:18 +0200
commit831030614c615d190a2a2c8b57d6c3b175628f56 (patch)
tree27b313e078266cfbf85115d06576d21eb9fe0f31
parent759a18801e846f9fca62afb4b43df0252669ba7d (diff)
downloadbugzilla-831030614c615d190a2a2c8b57d6c3b175628f56.tar.gz
bugzilla-831030614c615d190a2a2c8b57d6c3b175628f56.tar.xz
Re-fix for bug 55161 - if data is partial in activity table, prepend a ? to indicate that we don't know for sure what got dropped.
Patch by Jake Steenhagen <jake@acutex.net> r= justdave@syndicomm.com
-rw-r--r--CGI.pl41
-rwxr-xr-xchecksetup.pl6
2 files changed, 35 insertions, 12 deletions
diff --git a/CGI.pl b/CGI.pl
index 425956370..2f1a189b3 100644
--- a/CGI.pl
+++ b/CGI.pl
@@ -1147,27 +1147,44 @@ sub DumpBugActivity {
SendSQL($query);
- print "<table border cellpadding=4>\n";
- print "<tr>\n";
- print " <th>Who</th><th>What</th><th>Removed</th><th>Added</th><th>When</th>\n";
- print "</tr>\n";
+ # Instead of outright printing this, we are going to store it in a $html
+ # variable and print it and the end. This is so we can explain ? (if nesc.)
+ # at the top of the activity table rather than the botom.
+ my $html = "";
+ $html .= "<table border cellpadding=4>\n";
+ $html .= "<tr>\n";
+ $html .= " <th>Who</th><th>What</th><th>Removed</th><th>Added</th><th>When</th>\n";
+ $html .= "</tr>\n";
my @row;
+ my $incomplete_data = 0;
while (@row = FetchSQLData()) {
my ($field,$when,$removed,$added,$who) = (@row);
$removed = html_quote($removed);
$added = html_quote($added);
$removed = "&nbsp;" if $removed eq "";
$added = "&nbsp;" if $added eq "";
- print "<tr>\n";
- print "<td>$who</td>\n";
- print "<td>$field</td>\n";
- print "<td>$removed</td>\n";
- print "<td>$added</td>\n";
- print "<td>$when</td>\n";
- print "</tr>\n";
+ if ($added =~ /^\?/ || $removed =~ /^\?/) {
+ $incomplete_data = 1;
+ }
+ $html .= "<tr>\n";
+ $html .= "<td>$who</td>\n";
+ $html .= "<td>$field</td>\n";
+ $html .= "<td>$removed</td>\n";
+ $html .= "<td>$added</td>\n";
+ $html .= "<td>$when</td>\n";
+ $html .= "</tr>\n";
+ }
+ $html .= "</table>\n";
+ if ($incomplete_data) {
+ print "There was a bug in older versions of Bugzilla which caused activity data \n";
+ print "to be lost if there was a large number of cc's or dependencies. That \n";
+ print "has been fixed, however, there was some data already lost on this bug \n";
+ print "that could not be regenerated. The changes that the script could not \n";
+ print "reliably determine are prefixed by '?'\n";
+ print "<p>\n";
}
- print "</table>\n";
+ print $html;
}
diff --git a/checksetup.pl b/checksetup.pl
index d5ece7997..d8414e6c3 100755
--- a/checksetup.pl
+++ b/checksetup.pl
@@ -2431,6 +2431,12 @@ if (GetFieldDef('bugs_activity', 'oldvalue')) {
$added = "?";
$removed = "?";
}
+ # If the origianl field (old|new)value was full, then this
+ # could be incomplete data.
+ if (length($oldvalue) == 255 || length($newvalue) == 255) {
+ $added = "? $added";
+ $removed = "? $removed";
+ }
} else {
$removed = $oldvalue;
$added = $newvalue;