From 6f274b8a04a1954e12b173427f674856679b9551 Mon Sep 17 00:00:00 2001 From: Max Kanat-Alexander Date: Tue, 6 Jul 2010 11:03:40 -0700 Subject: Bug 577037: Make convert-workflow convert statuses in order, so that IN_PROGRESS doesn't end up before CONFIRMED. r=LpSolit, a=LpSolit --- contrib/convert-workflow.pl | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/contrib/convert-workflow.pl b/contrib/convert-workflow.pl index c01b751c0..7525bac95 100755 --- a/contrib/convert-workflow.pl +++ b/contrib/convert-workflow.pl @@ -54,16 +54,21 @@ END getc; my $dbh = Bugzilla->dbh; -my %translation = ( - NEW => 'CONFIRMED', - ASSIGNED => 'IN_PROGRESS', - REOPENED => 'CONFIRMED', - CLOSED => 'VERIFIED', +# This is an array instead of a hash so that we can be sure that +# the translation happens in the right order. In particular, we +# want NEW to be renamed to CONFIRMED, instead of having REOPENED +# be the one that gets renamed. +my @translation = ( + [NEW => 'CONFIRMED'], + [ASSIGNED => 'IN_PROGRESS'], + [REOPENED => 'CONFIRMED'], + [CLOSED => 'VERIFIED'], ); my $status_field = Bugzilla::Field->check('bug_status'); $dbh->bz_start_transaction(); -while (my ($from, $to) = each %translation) { +foreach my $pair (@translation) { + my ($from, $to) = @$pair; print "Converting $from to $to...\n"; $dbh->do('UPDATE bugs SET bug_status = ? WHERE bug_status = ?', undef, $to, $from); -- cgit v1.2.3-24-g4f1b