From fd5590bb10352cd6fde868ae1cdbfae339dd51e1 Mon Sep 17 00:00:00 2001 From: Florian Pritz Date: Thu, 1 Nov 2018 21:37:23 +0100 Subject: Flyspray: Only mark bugs as duplicates with the last dupe ID Signed-off-by: Florian Pritz --- Bugzilla/Migrate/Flyspray.pm | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Bugzilla/Migrate/Flyspray.pm b/Bugzilla/Migrate/Flyspray.pm index 527997361..ebcd9663b 100644 --- a/Bugzilla/Migrate/Flyspray.pm +++ b/Bugzilla/Migrate/Flyspray.pm @@ -485,13 +485,15 @@ sub _read_bugs { $self->translate_value('resolution', $bug->{resolution} // "") eq "DUPLICATE" and $closure_comment =~ m/FS#(\d+)/) { - push @{$self->{dupes}}, + push @{$self->{dupe_comments}}, { dupe_of => int($1), dupe => $row->{task_id}, who => $self->_get_username($history->{user_id}), bug_when => $self->parse_date($history->{event_date}), }; + $self->{dupe_mappings}->{$row->{task_id}} + = {dupe_of => int($1), dupe => $row->{task_id},}; } } } @@ -619,11 +621,14 @@ sub after_insert { my ($self) = @_; $self->debug("Marking duplicate bugs"); - for my $entry (@{$self->{dupes}}) { + for my $entry (values %{$self->{dupe_mappings}}) { 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}; + } + for my $entry (@{$self->{dupe_comments}}) { + my $dupeOf_bug = Bugzilla::Bug->new($entry->{dupe_of}); my $dupe_bug = Bugzilla::Bug->new($entry->{dupe}); -- cgit v1.2.3-24-g4f1b