Skip to content

Commit 4346ed7

Browse files
committed
Fix compare version script (#1435)
1 parent a7320ac commit 4346ed7

File tree

1 file changed

+17
-25
lines changed

1 file changed

+17
-25
lines changed

Scripts/CompareVersions.ps1

Lines changed: 17 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -15,34 +15,26 @@ if ($lastVersion.StartsWith("v")){
1515

1616
$currentVersionTokens = $currentVersion.Split('.')
1717
$lastVersionTokens = $lastVersion.Split('.')
18-
if ($currentVersionTokens.Length -eq $lastVersionTokens.Length)
18+
19+
# Compare versions segment by segment
20+
$maxLength = [Math]::Max($currentVersionTokens.Length, $lastVersionTokens.Length)
21+
for($i = 0; $i -lt $maxLength; $i++)
1922
{
20-
for($i = 0 ; $i -lt $currentVersionTokens.Length; $i++)
21-
{
22-
$currentVersionToken = [int]$currentVersionTokens[$i]
23-
$lastVersionToken = [int]$lastVersionTokens[$i]
24-
if ($currentVersionToken -lt $lastVersionToken){
25-
throw "Version is not incremented. Current version " + $currentVersion + ". Last version " + $lastVersion
26-
}
23+
# Treat missing segments as 0
24+
$currentVersionToken = if ($i -lt $currentVersionTokens.Length) { [int]$currentVersionTokens[$i] } else { 0 }
25+
$lastVersionToken = if ($i -lt $lastVersionTokens.Length) { [int]$lastVersionTokens[$i] } else { 0 }
26+
27+
if ($currentVersionToken -gt $lastVersionToken) {
28+
# Current version is greater, we're done
29+
Write-Host "Version has been incremented"
30+
exit 0
2731
}
28-
29-
if ($currentVersionToken -le $lastVersionToken){
32+
elseif ($currentVersionToken -lt $lastVersionToken) {
33+
# Current version is less, fail
3034
throw "Version is not incremented. Current version " + $currentVersion + ". Last version " + $lastVersion
3135
}
32-
33-
Write-Host "Version has been incremented"
36+
# If equal, continue to next segment
3437
}
35-
elseif ($currentVersionTokens.Length -gt $lastVersionTokens.Length){
36-
if ($currentVersionTokens[$lastVersionTokens.Length - 1] -lt $lastVersionTokens[$lastVersionTokens.Length - 1]){
37-
throw "Version is not incremented. Current version " + $currentVersion + ". Last version " + $lastVersion
38-
}
39-
40-
Write-Host "Version has been incremented"
41-
}
42-
elseif ($currentVersionTokens.Length -lt $lastVersionTokens.Length){
43-
if ($currentVersionTokens[$currentVersionTokens.Length - 1] -le $lastVersionTokens[$currentVersionTokens.Length - 1]){
44-
throw "Version is not incremented. Current version " + $currentVersion + ". Last version " + $lastVersion
45-
}
4638

47-
Write-Host "Version has been incremented"
48-
}
39+
# All segments are equal - version is not incremented
40+
throw "Version is not incremented. Current version " + $currentVersion + ". Last version " + $lastVersion

0 commit comments

Comments
 (0)