From 825c7259e56110d7ffb3dd5b6bc6d97c17817b91 Mon Sep 17 00:00:00 2001 From: Monday Date: Sat, 15 Aug 2020 10:17:44 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3x.y=20=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E7=BB=B4=E6=8A=A4=E5=88=86=E6=94=AF=E8=AF=86?= =?UTF-8?q?=E5=88=AB=E9=94=99=E8=AF=AF=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- advisors/version_recommend.py | 37 +++++++++++++++++++++++++++++------ 1 file changed, 31 insertions(+), 6 deletions(-) diff --git a/advisors/version_recommend.py b/advisors/version_recommend.py index 4d89411d..2062315a 100755 --- a/advisors/version_recommend.py +++ b/advisors/version_recommend.py @@ -538,16 +538,41 @@ class VersionTypeXY(VersionType): if len(version_candidate) == 1: return '.'.join(version_candidate[0]) + version_entry = version_candidate[:] + y = '0' - for version in version_candidate[0:]: - if len(version) <= 1: + version_candidate.clear() + for version in version_entry: # x.y 版本类型中会小概率出现三位版本号,需要将第二位最大的列入候选列表,准备第三位比较 + if len(version) <= 1: # 过滤仅一位的版本号 continue - - if self._compare(version[1], y) > 0: + if self._compare(y, version[1]) < 0: y = version[1] - x.append(y) - return '.'.join(x) + for version in version_entry: # x.y 版本类型中会小概率出现三位版本号,需要将第二位最大的列入候选列表,准备第三位比较 + if len(version) <= 1: # 过滤仅一位的版本号 + continue + if y == version[1]: + version_candidate.append(version) + + if len(version_candidate) == 1: # 仅一个版本,候选即为最新版本 + return '.'.join(version_candidate[0]) + + version_entry = version_candidate[:] + + z = '0' + for version in version_entry: # 第三轮比较取出最大的第三位 + if len(version) <= 2: # 过滤仅二位的版本号 + continue + if self._compare(z, version[2]) < 0: + z = version[2] + + for version in version_entry: # 最后一位最大版本必须惟一,直接返回结果 + if len(version) <= 2: # 过滤仅二位的版本号 + continue + if z == version[2]: + return '.'.join(version) + + return '' class VersionTypeX(VersionType): """Version type Class for x""" -- Gitee