[yum-commits] repodiff.py
James Antill
james at osuosl.org
Fri Jun 10 16:21:03 UTC 2011
repodiff.py | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
New commits:
commit 2d5ccebca68a72fe9c055f6b3e70bc93b03fa96c
Author: James Antill <james at and.org>
Date: Fri Jun 10 12:20:56 2011 -0400
Huge speedup for large number of add/remove obsoletes processing.
diff --git a/repodiff.py b/repodiff.py
index 8c5e582..67c162e 100755
--- a/repodiff.py
+++ b/repodiff.py
@@ -106,11 +106,12 @@ class DiffYum(yum.YumBase):
elif not npkg.verEQ(opkg):
modified.append((npkg, opkg))
- ao = []
+ ao = {}
for pkg in add:
- if not pkg.obsoletes:
- continue
- ao.append(pkg)
+ for obs_name in set(pkg.obsoletes_names):
+ if obs_name not in ao:
+ ao[obs_name] = []
+ ao[obs_name].append(pkg)
# Note that this _only_ shows something when you have an additional
# package obsoleting a removed package. If the obsoleted package is
@@ -119,7 +120,7 @@ class DiffYum(yum.YumBase):
for po in remove:
# Remember: Obsoletes are for package names only.
poprovtup = (po.name, 'EQ', (po.epoch, po.ver, po.release))
- for newpo in ao:
+ for newpo in ao.get(po.name, []):
if newpo.inPrcoRange('obsoletes', poprovtup):
obsoleted[po] = newpo
break
More information about the Yum-commits
mailing list