🐛 fix: 改进版本号比较逻辑以支持任意长度的版本号

This commit is contained in:
Soulter
2025-04-12 10:00:25 +08:00
parent 9e266eb6d5
commit e3b0ca8ef6
+13 -5
View File
@@ -105,16 +105,24 @@ class RepoZipUpdator:
"""
比较两个版本号的大小。
返回 1 表示 v1 > v2,返回 -1 表示 v1 < v2,返回 0 表示 v1 = v2。
支持任意长度的版本号,如v1.2.3或v3.5.3.1。
"""
v1 = v1.replace("v", "")
v2 = v2.replace("v", "")
v1 = v1.split(".")
v2 = v2.split(".")
v1_parts = v1.split(".")
v2_parts = v2.split(".")
for i in range(3):
if int(v1[i]) > int(v2[i]):
# 获取最长的版本号长度
length = max(len(v1_parts), len(v2_parts))
# 将短版本号补0以便比较
v1_parts.extend(["0"] * (length - len(v1_parts)))
v2_parts.extend(["0"] * (length - len(v2_parts)))
for i in range(length):
if int(v1_parts[i]) > int(v2_parts[i]):
return 1
elif int(v1[i]) < int(v2[i]):
elif int(v1_parts[i]) < int(v2_parts[i]):
return -1
return 0