optimize fixpackages (update_ents) to feed batched package moves to fixdbentries
authorZac Medico <zmedico@gentoo.org>
Fri, 17 Feb 2006 05:41:26 +0000 (05:41 -0000)
committerZac Medico <zmedico@gentoo.org>
Fri, 17 Feb 2006 05:41:26 +0000 (05:41 -0000)
svn path=/main/trunk/; revision=2723

pym/portage.py

index 07a36226bcde7a6835dc8985f2141718e067bb3a..e302879eca34c38d5400fb4aadae9f6004b65f4b 100644 (file)
@@ -5359,6 +5359,12 @@ class binarytree(packagetree):
                #XXX mytmpdir=settings["PORTAGE_TMPDIR"]+"/tbz2"
                if not self.populated:
                        self.populate()
+               move_dict = {}
+               for mylist in mybiglist:
+                       mylist=string.split(mylist)
+                       if mylist[0] != "move":
+                               continue
+                       move_dict[mylist[1]] = mylist[2]
                for mycpv in self.dbapi.cp_all():
                        tbz2path=self.getname(mycpv)
                        if os.path.exists(tbz2path) and not os.access(tbz2path,os.W_OK):
@@ -5368,11 +5374,7 @@ class binarytree(packagetree):
                        writemsg("*")
                        mytbz2=xpak.tbz2(tbz2path)
                        mytbz2.decompose(mytmpdir,cleanup=1)
-                       for mylist in mybiglist:
-                               mylist=string.split(mylist)
-                               if mylist[0] != "move":
-                                       continue
-                               fixdbentries({mylist[1]:mylist[2]}, mytmpdir)
+                       fixdbentries(move_dict, mytmpdir)
                        mytbz2.recompose(mytmpdir,cleanup=1)
                return 1