From 45b92f47435cc138c2f0724bf263d5ffc783e951 Mon Sep 17 00:00:00 2001 From: Florian Pritz Date: Thu, 7 Jun 2018 18:02:54 +0200 Subject: Flyspray: Mark duplicate bugs only once all bugs are imported Sometimes eariler bugs are marked as duplicate of later ones so doing it before all are imported won't work. Signed-off-by: Florian Pritz --- Bugzilla/Migrate/Flyspray.pm | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/Bugzilla/Migrate/Flyspray.pm b/Bugzilla/Migrate/Flyspray.pm index 52f6b8855..e8d294036 100644 --- a/Bugzilla/Migrate/Flyspray.pm +++ b/Bugzilla/Migrate/Flyspray.pm @@ -16,6 +16,8 @@ use parent qw(Bugzilla::Migrate); use Bugzilla::Constants; use Bugzilla::Util qw(validate_email_syntax); use Bugzilla::DB; +use Bugzilla::User; +use Bugzilla::Bug; use IO::File; use List::Util qw(first none); @@ -406,20 +408,6 @@ sub _read_bugs { who => $self->_get_username($history->{user_id}), bug_when => $self->parse_date($history->{event_date}), }; - - push @{$bug->{comments}}, { - type => CMT_DUPE_OF, - extra_data => int($1), - who => $self->_get_username($history->{user_id}), - bug_when => $self->parse_date($history->{event_date}), - }; - - push @{$self->{bug_map}->{int($1)}->{comments}}, { - type => CMT_HAS_DUPE, - extra_data => $row->{task_id}, - who => $self->_get_username($history->{user_id}), - bug_when => $self->parse_date($history->{event_date}), - } if defined $self->{bug_map}->{int($1)}; } } } elsif ($history->{event_type} == 3) { @@ -538,10 +526,25 @@ sub after_insert { my ($self) = @_; $self->debug("Marking duplicate bugs"); - $self->debug($self->{dupes}, 3); for my $entry (@{$self->{dupes}}) { my $dupeOf_bug = Bugzilla::Bug->new($entry->{dupe_of}); $self->{dbh}->do("INSERT INTO duplicates (dupe_of, dupe) VALUES (?, ?)", undef, $entry->{dupe_of}, $entry->{dupe}) unless defined $dupeOf_bug->{error}; + + my $dupe_bug = Bugzilla::Bug->new($entry->{dupe}); + + $self->_insert_comments($dupe_bug, [{ + type => CMT_DUPE_OF, + extra_data => $entry->{dupe_of}, + who => $entry->{who}, + bug_when => $entry->{bug_when}, + }]); + + $self->_insert_comments($dupeOf_bug, [{ + type => CMT_HAS_DUPE, + extra_data => $entry->{dupe}, + who => $entry->{who}, + bug_when => $entry->{bug_when}, + }]); } } -- cgit v1.2.3-24-g4f1b