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
770ba88b
Commit
770ba88b
authored
Feb 07, 2007
by
olav%bkor.dhs.org
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Bug 366629: Bugmail messed up if adding dependency for resolved bug in new bug
Patch by Olav Vitters <olav@bkor.dhs.org> r=LpSolit a=LpSolit
parent
121badd2
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
50 additions
and
38 deletions
+50
-38
BugMail.pm
Bugzilla/BugMail.pm
+50
-38
No files found.
Bugzilla/BugMail.pm
View file @
770ba88b
...
...
@@ -215,6 +215,7 @@ sub Send {
$when_restriction
ORDER BY bugs_activity.bug_when"
,
undef
,
@args
);
my
@new_depbugs
;
my
$difftext
=
""
;
my
$diffheader
=
""
;
my
@diffparts
;
...
...
@@ -238,6 +239,9 @@ sub Send {
$old
=
format_time_decimal
(
$old
);
$new
=
format_time_decimal
(
$new
);
}
if
(
$fieldname
eq
'dependson'
)
{
push
(
@new_depbugs
,
grep
{
$_
=~
/^\d+$/
}
split
(
/[\s,]+/
,
$new
));
}
if
(
$attachid
)
{
(
$diffpart
->
{
'isprivate'
})
=
$dbh
->
selectrow_array
(
'SELECT isprivate FROM attachments WHERE attach_id = ?'
,
...
...
@@ -252,9 +256,19 @@ sub Send {
}
$values
{
'changed_fields'
}
=
join
(
' '
,
@changedfields
);
my
@depbugs
;
my
$deptext
=
""
;
# Do not include data about dependent bugs when they have just been added.
# Completely skip checking for dependent bugs on bug creation as all
# dependencies bugs will just have been added.
if
(
$start
)
{
my
$dep_restriction
=
""
;
if
(
scalar
@new_depbugs
)
{
$dep_restriction
=
"AND bugs_activity.bug_id NOT IN ("
.
join
(
", "
,
@new_depbugs
)
.
")"
;
}
my
$dependency_diffs
=
$dbh
->
selectall_arrayref
(
my
$dependency_diffs
=
$dbh
->
selectall_arrayref
(
"SELECT bugs_activity.bug_id, bugs.short_desc, fielddefs.name,
bugs_activity.removed, bugs_activity.added
FROM bugs_activity
...
...
@@ -268,52 +282,50 @@ sub Send {
AND (fielddefs.name = 'bug_status'
OR fielddefs.name = 'resolution')
$when_restriction
$dep_restriction
ORDER BY bugs_activity.bug_when, bugs.bug_id"
,
undef
,
@args
);
my
$thisdiff
=
""
;
my
$lastbug
=
""
;
my
$interestingchange
=
0
;
my
@depbugs
;
foreach
my
$dependency_diff
(
@$dependency_diffs
)
{
my
(
$depbug
,
$summary
,
$what
,
$old
,
$new
)
=
@$dependency_diff
;
my
$thisdiff
=
""
;
my
$lastbug
=
""
;
my
$interestingchange
=
0
;
foreach
my
$dependency_diff
(
@$dependency_diffs
)
{
my
(
$depbug
,
$summary
,
$what
,
$old
,
$new
)
=
@$dependency_diff
;
if
(
$depbug
ne
$lastbug
)
{
if
(
$interestingchange
)
{
$deptext
.=
$thisdiff
;
if
(
$depbug
ne
$lastbug
)
{
if
(
$interestingchange
)
{
$deptext
.=
$thisdiff
;
}
$lastbug
=
$depbug
;
my
$urlbase
=
Bugzilla
->
params
->
{
"urlbase"
};
$thisdiff
=
"\nBug $id depends on bug $depbug, which changed state.\n\n"
.
"Bug $depbug Summary: $summary\n"
.
"${urlbase}show_bug.cgi?id=$depbug\n\n"
;
$thisdiff
.=
FormatTriple
(
"What "
,
"Old Value"
,
"New Value"
);
$thisdiff
.=
(
'-'
x
76
)
.
"\n"
;
$interestingchange
=
0
;
}
$lastbug
=
$depbug
;
my
$urlbase
=
Bugzilla
->
params
->
{
"urlbase"
};
$thisdiff
=
"\nBug $id depends on bug $depbug, which changed state.\n\n"
.
"Bug $depbug Summary: $summary\n"
.
"${urlbase}show_bug.cgi?id=$depbug\n\n"
;
$thisdiff
.=
FormatTriple
(
"What "
,
"Old Value"
,
"New Value"
);
$thisdiff
.=
(
'-'
x
76
)
.
"\n"
;
$interestingchange
=
0
;
}
$thisdiff
.=
FormatTriple
(
$fielddescription
{
$what
},
$old
,
$new
);
if
(
$what
eq
'bug_status'
&&
Bugzilla::Bug::
is_open_state
(
$old
)
ne
Bugzilla::Bug::
is_open_state
(
$new
))
{
$interestingchange
=
1
;
$thisdiff
.=
FormatTriple
(
$fielddescription
{
$what
},
$old
,
$new
);
if
(
$what
eq
'bug_status'
&&
Bugzilla::Bug::
is_open_state
(
$old
)
ne
Bugzilla::Bug::
is_open_state
(
$new
))
{
$interestingchange
=
1
;
}
push
(
@depbugs
,
$depbug
);
}
push
(
@depbugs
,
$depbug
);
}
if
(
$interestingchange
)
{
$deptext
.=
$thisdiff
;
}
$deptext
=
trim
(
$deptext
);
if
(
$interestingchange
)
{
$deptext
.=
$thisdiff
;
}
$deptext
=
trim
(
$deptext
);
if
(
$deptext
)
{
my
$diffpart
=
{};
$diffpart
->
{
'text'
}
=
"\n"
.
trim
(
"\n\n"
.
$deptext
);
push
(
@diffparts
,
$diffpart
);
if
(
$deptext
)
{
my
$diffpart
=
{};
$diffpart
->
{
'text'
}
=
"\n"
.
trim
(
"\n\n"
.
$deptext
);
push
(
@diffparts
,
$diffpart
);
}
}
my
(
$raw_comments
,
$anyprivate
,
$count
)
=
get_comments_by_bug
(
$id
,
$start
,
$end
);
###########################################################################
...
...
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