Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
bugzilla
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
etersoft
bugzilla
Commits
cf9b879f
Commit
cf9b879f
authored
Oct 24, 2000
by
tara%tequilarista.org
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
part of gervase markham's duplicates tracking functionality
parent
1f1e2236
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
186 additions
and
0 deletions
+186
-0
duplicates.cgi
duplicates.cgi
+186
-0
No files found.
duplicates.cgi
0 → 100755
View file @
cf9b879f
#!/usr/bonsaitools/bin/perl -w
# -*- Mode: perl; indent-tabs-mode: nil -*-
#
# The contents of this file are subject to the Mozilla Public
# License Version 1.1 (the "License"); you may not use this file
# except in compliance with the License. You may obtain a copy of
# the License at http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
# implied. See the License for the specific language governing
# rights and limitations under the License.
#
# The Original Code is the Bugzilla Bug Tracking System.
#
# The Initial Developer of the Original Code is Netscape Communications
# Corporation. Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation. All
# Rights Reserved.
#
# Contributor(s): Gervase Markham <gerv@gerv.net>
#
# Generates mostfreq list from data collected by collectstats.pl.
use
diagnostics
;
use
strict
;
use
CGI
"param"
;
use
DB_File
;
require
"globals.pl"
;
require
"CGI.pl"
;
ConnectToDatabase
();
GetVersionTable
();
my
%
count
;
my
$dobefore
=
0
;
my
$before
=
""
;
my
%
before
;
my
$changedsince
;
my
$maxrows
=
500
;
# arbitrary limit on max number of rows
my
$today
=
&
days_ago
(
0
);
# Open today's record of dupes
if
(
-
e
"data/mining/dupes$today.db"
)
{
dbmopen
(
%
count
,
"data/mining/dupes${today}.db"
,
0644
)
||
die
"Can't open today's dupes file: $!"
;
}
else
{
# Try yesterday's, then (in case today's hasn't been created yet) :-)
$today
=
&
days_ago
(
1
);
if
(
-
e
"data/mining/dupes$today.db"
)
{
dbmopen
(
%
count
,
"data/mining/dupes${today}.db"
,
0644
)
||
die
"Can't open yesterday's dupes file: $!"
;
}
else
{
die
"There are no duplicate statistics for today or yesterday."
;
}
}
# Check for changedsince param, and see if it's a positive integer
if
(
defined
(
param
(
"changedsince"
))
&&
param
(
"changedsince"
)
=~
/^\d{1,4}$/
)
{
$changedsince
=
param
(
"changedsince"
);
}
else
{
# Otherwise, default to one week
$changedsince
=
"7"
;
}
$before
=
&
days_ago
(
$changedsince
);
# check for max rows parameter
if
(
defined
(
param
(
"maxrows"
))
&&
param
(
"maxrows"
)
=~
/^\d{1,4}$/
)
{
$maxrows
=
param
(
"maxrows"
);
}
if
(
-
e
"data/mining/dupes${before}.db"
)
{
dbmopen
(
%
before
,
"data/mining/dupes${before}.db"
,
0644
)
&&
(
$dobefore
=
1
);
}
print
"Content-type: text/html\n"
;
print
"\n"
;
PutHeader
(
"Most Frequently Reported Bugs"
);
print
Param
(
"mostfreqhtml"
);
print
"
<table BORDER>
<tr BGCOLOR=\"#CCCCCC\">
<td><center><b>Bug #</b></center></td>
<td><center><b>Dupe<br>Count</b></center></td>\n"
;
if
(
$dobefore
)
{
print
"<td><center><b>Change in last<br>$changedsince day(s)</b></center></td> "
;
}
print
"
<td><center><b>Component</b></center></td>
<td><center><b>Severity</b></center></td>
<td><center><b>Op Sys</b></center></td>
<td><center><b>Target<br>Milestone</b></center></td>
<td><center><b>Summary</b></center></td>
</tr>\n\n"
;
my
%
delta
;
# Calculate the deltas if we are doing a "before"
if
(
$dobefore
)
{
foreach
(
keys
(
%
count
))
{
$delta
{
$_
}
=
$count
{
$_
}
-
$before
{
$_
};
}
}
# Offer the option of sorting on total count, or on the delta
my
@sortedcount
;
if
(
defined
(
param
(
"sortby"
))
&&
param
(
"sortby"
)
==
"delta"
)
{
@sortedcount
=
sort
by_delta
keys
(
%
count
);
}
else
{
@sortedcount
=
sort
by_dup_count
keys
(
%
count
);
}
my
$i
=
0
;
foreach
(
@sortedcount
)
{
my
$id
=
$_
;
SendSQL
(
"SELECT component, bug_severity, op_sys, target_milestone, short_desc FROM "
.
"bugs WHERE bug_id = $id"
);
my
(
$component
,
$severity
,
$op_sys
,
$milestone
,
$summary
)
=
FetchSQLData
();
print
"<tr>"
;
print
'<td><center><A HREF="show_bug.cgi?id='
.
$id
.
'">'
;
print
$id
.
"</A></center></td>"
;
print
"<td><center>$count{$id}</center></td>"
;
if
(
$dobefore
)
{
print
"<td><center>$delta{$id}</center></td>"
;
}
print
"<td>$component</td>\n "
;
print
"<td><center>$severity</center></td>"
;
print
"<td><center>$op_sys</center></td>"
;
print
"<td><center>$milestone</center></td>"
;
print
"<td>$summary</td>"
;
print
"</tr>\n"
;
$i
++
;
if
(
$i
==
$maxrows
)
{
last
;
}
}
print
"</table><br><br>"
;
PutFooter
();
sub
by_dup_count
{
return
-
(
$count
{
$a
}
<=>
$count
{
$b
});
}
sub
by_delta
{
return
-
(
$delta
{
$a
}
<=>
$delta
{
$b
});
}
sub
days_ago
{
my
(
$dom
,
$mon
,
$year
)
=
(
localtime
(
time
-
(
$_
[
0
]
*
24
*
60
*
60
)))[
3
,
4
,
5
];
return
sprintf
"%04d%02d%02d"
,
1900
+
$year
,
++
$mon
,
$dom
;
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment