Author: schubi2
Date: Thu Aug 9 13:07:06 2007
New Revision: 6543
URL: http://svn.opensuse.org/viewcvs/zypp?rev=6543&view=rev
Log:
locking resol. added
Modified:
trunk/libzypp/zypp/solver/detail/Testcase.cc
trunk/libzypp/zypp/solver/detail/Testcase.h
Modified: trunk/libzypp/zypp/solver/detail/Testcase.cc
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/solver/detail/Testcase.cc?rev=6543&r1=6542&r2=6543&view=diff
==============================================================================
--- trunk/libzypp/zypp/solver/detail/Testcase.cc (original)
+++ trunk/libzypp/zypp/solver/detail/Testcase.cc Thu Aug 9 13:07:06 2007
@@ -232,6 +232,7 @@
RepositoryTable repoTable;
PoolItemList items_to_install;
PoolItemList items_to_remove;
+ PoolItemList items_locked;
PoolItemList language;
HelixResolvable system (dumpPath + "/solver-system.xml");
@@ -268,6 +269,12 @@
&& !(it->status().isBySolver())) {
items_to_remove.push_back (*it);
}
+ if ( it->status().isLocked()
+ && !(it->status().isBySolver())
+ && !isKind<SystemResObject>(res)) {
+ items_locked.push_back (*it);
+ }
+
}
}
@@ -282,6 +289,11 @@
control.installResolvable (iter->resolvable());
}
+ for (PoolItemList::const_iterator iter = items_locked.begin(); iter != items_locked.end(); iter++) {
+ control.lockResolvable (iter->resolvable());
+ }
+
+
for (PoolItemList::const_iterator iter = items_to_remove.begin(); iter != items_to_remove.end(); iter++) {
control.deleteResolvable (iter->resolvable());
}
@@ -372,6 +384,15 @@
<< " version=\"" << resObject->edition().version() << "\"" << " release=\"" << resObject->edition().release() << "\""
<< "/>" << endl;
}
+
+void HelixControl::lockResolvable(const ResObject::constPtr &resObject)
+{
+ Repository repo = resObject->repository();
+ *file << "