[yum-cvs] yum/yum depsolve.py,1.121,1.122
James Bowes
jbowes at linux.duke.edu
Sun Feb 18 21:58:58 UTC 2007
Update of /home/groups/yum/cvs/yum/yum
In directory login1.linux.duke.edu:/tmp/cvs-serv19685/yum
Modified Files:
depsolve.py
Log Message:
Speed up erase by only doing tscheck on the new editions to tsInfo, rather than doing the old ones over and over again
Index: depsolve.py
===================================================================
RCS file: /home/groups/yum/cvs/yum/yum/depsolve.py,v
retrieving revision 1.121
retrieving revision 1.122
diff -u -r1.121 -r1.122
--- depsolve.py 18 Feb 2007 14:30:57 -0000 1.121
+++ depsolve.py 18 Feb 2007 21:58:56 -0000 1.122
@@ -38,7 +38,8 @@
self.dsCallback = None
self.logger = logging.getLogger("yum.Depsolve")
self.verbose_logger = logging.getLogger("yum.verbose.Depsolve")
-
+ self.tsInfoDelta = []
+
def initActionTs(self):
"""sets up the ts we'll use for all the work"""
@@ -468,6 +469,7 @@
requiringPo, needname)
txmbr = self.tsInfo.addErase(requiringPo)
txmbr.setAsDep(po=needpo)
+ self.tsInfoDelta.append(txmbr)
checkdeps = 1
if needmode in ['i', 'u']:
@@ -490,6 +492,7 @@
txmbr = self.tsInfo.addObsoleting(po, requiringPo)
self.tsInfo.addObsoleted(requiringPo, po)
txmbr.setAsDep(po=needpo)
+ self.tsInfoDelta.append(txmbr)
self.verbose_logger.log(logginglevels.DEBUG_2, 'TSINFO: Obsoleting %s with %s to resolve dep.',
requiringPo, po)
checkdeps = 1
@@ -521,6 +524,7 @@
if po.pkgtup == new:
txmbr = self.tsInfo.addUpdate(po, requiringPo)
txmbr.setAsDep(po=needpo)
+ self.tsInfoDelta.append(txmbr)
self.verbose_logger.log(logginglevels.DEBUG_2, 'TSINFO: Updating %s to resolve dep.', po)
checkdeps = 1
@@ -661,11 +665,13 @@
name)
txmbr = self.tsInfo.addUpdate(best)
txmbr.setAsDep()
+ self.tsInfoDelta.append(txmbr)
else:
self.verbose_logger.debug('TSINFO: Marking %s as install for %s', best,
name)
txmbr = self.tsInfo.addInstall(best)
txmbr.setAsDep()
+ self.tsInfoDelta.append(txmbr)
checkdeps = 1
@@ -726,6 +732,7 @@
'TSINFO: Updating %s to resolve conflict.', po)
txmbr = self.tsInfo.addUpdate(po)
txmbr.setAsDep()
+ self.tsInfoDelta.append(txmbr)
CheckDeps = 1
else:
@@ -1049,7 +1056,7 @@
# returns a list of tuples
# ((name, version, release), (needname, needversion), flags, suggest, sense)
ret = []
- for txmbr in self.tsInfo.getMembers():
+ for txmbr in self.tsInfoDelta:
if txmbr.output_state in (TS_INSTALL, TS_TRUEINSTALL, TS_OBSOLETING):
ret.extend(self._checkInstall(txmbr))
elif txmbr.output_state in (TS_UPDATE,):
@@ -1057,6 +1064,7 @@
elif txmbr.output_state in TS_REMOVE_STATES:
ret.extend(self._checkRemove(txmbr))
+ self.tsInfoDelta = []
return ret
def resolveDeps(self):
@@ -1069,6 +1077,7 @@
errors = []
if self.dsCallback: self.dsCallback.start()
+ self.tsInfoDelta = self.tsInfo.getMembers()
while CheckDeps:
self.cheaterlookup = {} # short cache for some information we'd resolve
# (needname, needversion) = pkgtup
More information about the Yum-cvs-commits
mailing list