[Collab-qa-commits] r971 - udd/src/udd

neronus-guest at alioth.debian.org neronus-guest at alioth.debian.org
Tue Jul 29 14:01:18 UTC 2008


Author: neronus-guest
Date: 2008-07-29 14:01:16 +0000 (Tue, 29 Jul 2008)
New Revision: 971

Modified:
   udd/src/udd/bugs_gatherer.pl
Log:
Now all bugs which are going to be inserted, are deleted prior to that,
	not only bugs which are archived/unarchived


Modified: udd/src/udd/bugs_gatherer.pl
===================================================================
--- udd/src/udd/bugs_gatherer.pl	2008-07-29 13:59:40 UTC (rev 970)
+++ udd/src/udd/bugs_gatherer.pl	2008-07-29 14:01:16 UTC (rev 971)
@@ -1,5 +1,5 @@
 #!/usr/bin/perl
-# Last-Modified: <Mon Jul 28 23:38:37 2008>
+# Last-Modified: <Tue Jul 29 13:55:14 2008>
 
 use strict;
 use warnings;
@@ -14,22 +14,12 @@
 
 use Debbugs::Bugs qw{get_bugs};
 use Debbugs::Status qw{read_bug get_bug_status bug_presence};
-use Debbugs::Packages qw{binarytosource getpkgsrc};
+use Debbugs::Packages qw{binarytosource};
 use Debbugs::Config qw{:globals};
 use Debbugs::User qw{read_usertags};
 
-use POSIX qw{strftime};
-use Time::Local qw{timelocal};
-
 $YAML::Syck::ImplicitTyping = 1;
 
-sub parse_time {
-	if(shift =~ /(\d\d\d\d)-(\d\d)-(\d\d) (\d\d):(\d\d):(\d\d)/) {
-		return ($1, $2, $3, $4, $5, $6);
-	}
-	return undef;
-}
-
 # Return the list of usernames
 sub get_bugs_users {
 	my $topdir = "$gSpoolDir/user";
@@ -46,11 +36,6 @@
 	return @ret;
 }
 
-sub is_bug_in_db {
-	my ($dbh, $bug_nr) = @_;
-	return $dbh->execute("SELECT * FROM bugs WHERE id = $bug_nr")->fetchrow_array();
-}
-
 sub main {
 	if(@ARGV != 2) {
 		print STDERR "Usage: $0 <config> <source>";
@@ -70,7 +55,8 @@
 	# Free usertags table
 	$dbh->prepare("DELETE FROM bug_user_tags")->execute() or die
 		"Couldn't empty bug_user_tags: $!";
-	# read user tags
+
+	# read and insert user tags
 	my @users = get_bugs_users();
 	foreach my $user (@users) {
 		my %tags = ();
@@ -82,17 +68,22 @@
 		}
 	}
 
-	#delete the bug from the other tables, if it exists
+	#Get the bugs we want to import
+	my @bugs = $src_config{archived} ? get_bugs(archive => 1) : get_bugs();
+
+	# Delete all bugs we are going to import
 	map {
-		$dbh->prepare("DELETE FROM $_ WHERE EXISTS (SELECT * FROM bugs WHERE id = bugs.id AND bugs.is_archived = " . ($src_config{archived} ? 'TRUE' : 'FALSE') . ")")->execute();
-	} qw{bug_found_in bug_fixed_in bug_merged_with};
-	$dbh->prepare("DELETE FROM bugs WHERE is_archived = " . ($src_config{archived} ? 'TRUE' : 'FALSE'))->execute();
+		$dbh->prepare("DELETE FROM $_ WHERE id IN (" . join(", ", @bugs) . ")")->execute()
+			or die "Could not delete entries from $_: $!";
+	} qw{bugs bug_found_in bug_fixed_in bug_merged_with};
 
+	# Used to chache binary to source mappings
 	my %binarytosource = ();
 
+	# XXX What if a bug is in location 'db' (which currently doesn't exist)
 	my $location = $src_config{archived} ? 'archive' : 'db_h';
 	# Read all bugs
-	foreach my $bug_nr ($src_config{archived} ? get_bugs(archive => 1) : get_bugs()) {
+	foreach my $bug_nr (@bugs) {
 		#next unless $bug_nr =~ /00$/;
 		# Fetch bug using Debbugs
 		# Bugs which were once archived and have been unarchived again will appear in get_bugs(archive => 1).




More information about the Collab-qa-commits mailing list