]> git.decadent.org.uk Git - dak.git/commitdiff
[rmurray] handle multiple orig.tar.gz's in check_dsc_against_db
authorJames Troup <james@nocrew.org>
Tue, 13 Feb 2007 13:40:40 +0000 (13:40 +0000)
committerJames Troup <james@nocrew.org>
Tue, 13 Feb 2007 13:40:40 +0000 (13:40 +0000)
ChangeLog
daklib/queue.py

index 62c97be13a873ad629ba47dd391f570f6edbaf57..ffce70ec4b90036f05c7a0ca22b8a51f61ae93d4 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -19,6 +19,9 @@
 
 2007-02-08  Ryan Murray  <rmurray@debian.org>
 
+       * daklib/queue.py (Upload.check_dsc_against_db): handle multiple
+       orig.tar.gz's by picking the first one by file id.
+
        * dak/override.py (main): limit to binary overrides only for now.
        (usage): update to match.
 
index 46343a2878c2fc2b3c9561af556116d5ca520f4f..e1b50b2f34ed5d6e4d7a3207b9af8bed05875900 100644 (file)
@@ -919,6 +919,8 @@ SELECT s.version, su.suite_name FROM source s, src_associations sa, suite su
         # Try and find all files mentioned in the .dsc.  This has
         # to work harder to cope with the multiple possible
         # locations of an .orig.tar.gz.
+        # The ordering on the select is needed to pick the newest orig
+        # when it exists in multiple places.
         for dsc_file in dsc_files.keys():
             found = None
             if files.has_key(dsc_file):
@@ -926,7 +928,7 @@ SELECT s.version, su.suite_name FROM source s, src_associations sa, suite su
                 actual_size = int(files[dsc_file]["size"])
                 found = "%s in incoming" % (dsc_file)
                 # Check the file does not already exist in the archive
-                q = self.projectB.query("SELECT f.size, f.md5sum, l.path, f.filename FROM files f, location l WHERE f.filename LIKE '%%%s%%' AND l.id = f.location" % (dsc_file))
+                q = self.projectB.query("SELECT f.size, f.md5sum, l.path, f.filename FROM files f, location l WHERE f.filename LIKE '%%%s%%' AND l.id = f.location ORDER BY f.id DESC" % (dsc_file))
                 ql = q.getresult()
                 # Strip out anything that isn't '%s' or '/%s$'
                 for i in ql: