Kaydet (Commit) af5d6843 authored tarafından root's avatar root

better check release relations

üst 627883e7
...@@ -277,45 +277,40 @@ class Install(AtomicOperation): ...@@ -277,45 +277,40 @@ class Install(AtomicOperation):
if self.installdb.has_package(pkg.name): # is this a reinstallation? if self.installdb.has_package(pkg.name): # is this a reinstallation?
(iversion_s, irelease_s) = self.installdb.get_version(pkg.name)[:2] (iversion_s, irelease_s) = self.installdb.get_version(pkg.name)[:2]
pkg_version = inary.version.make_version(pkg.version)
# determine if same version iversion = inary.version.make_version(iversion_s)
if pkg.release == irelease_s: if pkg_version > iversion:
if self.ask_reinstall: if ctx.config.get_option('store_lib_info'):
if not ctx.ui.confirm(
_('Re-install same version package?')):
raise Error(_('Package re-install declined'))
self.operation = REINSTALL
ctx.ui.info(_('Re-installing package.'))
else:
pkg_version = inary.version.make_version(pkg.version)
iversion = inary.version.make_version(iversion_s)
if ctx.config.get_option(
'store_lib_info') and pkg_version > iversion:
self.store_old_paths = os.path.join( self.store_old_paths = os.path.join(
ctx.config.old_paths_cache_dir(), pkg.name) ctx.config.old_paths_cache_dir(), pkg.name)
ctx.ui.info(_('Storing old paths info.')) ctx.ui.info(_('Storing old paths info.'))
open( open(
self.store_old_paths, "w").write( self.store_old_paths, "w").write(
"Version: {}\n".format(iversion_s)) "Version: {}\n".format(iversion_s))
elif pkg_version < iversion:
ctx.ui.warning(_('Downgrade to old version.'))
pkg_release = int(pkg.release)
irelease = int(irelease_s)
# is this an upgrade?
# determine and report the kind of upgrade: version, release
if pkg_release > irelease:
ctx.ui.info(_('Upgrading to new release.'))
self.operation = UPGRADE
# is this a downgrade? confirm this action.
elif pkg_release < irelease:
x = _('Downgrade to old distribution release?')
if not ctx.ui.confirm(x):
raise Error(_('Package downgrade declined'))
self.operation = DOWNGRADE
else:
if self.ask_reinstall:
if not ctx.ui.confirm(_('Re-install same version package?')):
raise Error(_('Package re-install declined'))
self.operation = REINSTALL
pkg_release = int(pkg.release)
irelease = int(irelease_s)
# is this an upgrade?
# determine and report the kind of upgrade: version, release
if pkg_release > irelease:
ctx.ui.info(_('Upgrading to new release.'))
self.operation = UPGRADE
# is this a downgrade? confirm this action.
if not self.operation == UPGRADE:
if pkg_release < irelease:
x = _('Downgrade to old distribution release?')
else:
x = None
if self.ask_reinstall and x and not ctx.ui.confirm(x):
raise Error(_('Package downgrade declined'))
self.operation = DOWNGRADE
# schedule for reinstall # schedule for reinstall
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment