85 lines
3.3 KiB
Diff
85 lines
3.3 KiB
Diff
commit 3fcf104316ea3f00c441915786d1e841f8c5b7c1
|
|
Author: Fabio Erculiani <lxnay@sabayon.org>
|
|
Date: Fri Aug 20 14:14:36 2010 +0200
|
|
|
|
[entropy.server] fix revision bumping support
|
|
|
|
Packages were removed before the revision bumping logic code had
|
|
a chance to calculate the new package revision.
|
|
|
|
diff --git a/libraries/entropy/server/interfaces/db.py b/libraries/entropy/server/interfaces/db.py
|
|
index 7568490..c521f43 100644
|
|
--- a/libraries/entropy/server/interfaces/db.py
|
|
+++ b/libraries/entropy/server/interfaces/db.py
|
|
@@ -194,40 +194,24 @@ class ServerPackagesRepository(EntropyRepository):
|
|
Reimplemented from EntropyRepository.
|
|
"""
|
|
|
|
- # Remove entries in the same scope.
|
|
- manual_deps = set()
|
|
- removelist = self.getPackagesToRemove(
|
|
- pkg_data['name'], pkg_data['category'],
|
|
- pkg_data['slot'], pkg_data['injected']
|
|
- )
|
|
-
|
|
- for r_package_id in removelist:
|
|
- manual_deps |= self.retrieveManualDependencies(r_package_id)
|
|
- self.removePackage(r_package_id, do_cleanup = False,
|
|
- do_commit = False)
|
|
-
|
|
- # inject old manual dependencies back to package metadata
|
|
- for manual_dep in manual_deps:
|
|
- if manual_dep in pkg_data['dependencies']:
|
|
- continue
|
|
- pkg_data['dependencies'][manual_dep] = \
|
|
- etpConst['dependency_type_ids']['mdepend_id']
|
|
-
|
|
# build atom string, server side
|
|
pkgatom = entropy.tools.create_package_atom_string(
|
|
pkg_data['category'], pkg_data['name'], pkg_data['version'],
|
|
pkg_data['versiontag'])
|
|
|
|
- package_ids = self.getPackageIds(pkgatom)
|
|
current_rev = forcedRevision
|
|
|
|
- for package_id in package_ids:
|
|
+ manual_deps = set()
|
|
+ # Remove entries in the same scope.
|
|
+ for package_id in self.getPackageIds(pkgatom):
|
|
|
|
if forcedRevision == -1:
|
|
myrev = self.retrieveRevision(package_id)
|
|
if myrev > current_rev:
|
|
current_rev = myrev
|
|
|
|
+ #
|
|
+ manual_deps |= self.retrieveManualDependencies(package_id)
|
|
# injected packages wouldn't be removed by addPackage
|
|
self.removePackage(package_id, do_cleanup = False,
|
|
do_commit = False)
|
|
@@ -235,6 +219,24 @@ class ServerPackagesRepository(EntropyRepository):
|
|
if forcedRevision == -1:
|
|
current_rev += 1
|
|
|
|
+ # manual dependencies handling
|
|
+ removelist = self.getPackagesToRemove(
|
|
+ pkg_data['name'], pkg_data['category'],
|
|
+ pkg_data['slot'], pkg_data['injected']
|
|
+ )
|
|
+
|
|
+ for r_package_id in removelist:
|
|
+ manual_deps |= self.retrieveManualDependencies(r_package_id)
|
|
+ self.removePackage(r_package_id, do_cleanup = False,
|
|
+ do_commit = False)
|
|
+
|
|
+ # inject old manual dependencies back to package metadata
|
|
+ for manual_dep in manual_deps:
|
|
+ if manual_dep in pkg_data['dependencies']:
|
|
+ continue
|
|
+ pkg_data['dependencies'][manual_dep] = \
|
|
+ etpConst['dependency_type_ids']['mdepend_id']
|
|
+
|
|
# add the new one
|
|
return self.addPackage(pkg_data, revision = current_rev,
|
|
formatted_content = formattedContent)
|