summaryrefslogtreecommitdiff
path: root/internal/release/release.go
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-05-29 17:07:22 +0300
committerPaul Buetow <paul@buetow.org>2026-05-29 17:07:22 +0300
commitb076c5e2ac5403de28c5d0ba44fddf216f3034ce (patch)
treea979b40edc269005879d6be2c4a2fced4210156c /internal/release/release.go
parenta956a672859e92190149506197ad0fa682e964e2 (diff)
fix(vq): handle ignored stash/pop and parse errors explicitly
Diffstat (limited to 'internal/release/release.go')
-rw-r--r--internal/release/release.go15
1 files changed, 13 insertions, 2 deletions
diff --git a/internal/release/release.go b/internal/release/release.go
index 9af3392..0c8b33f 100644
--- a/internal/release/release.go
+++ b/internal/release/release.go
@@ -9,6 +9,7 @@ import (
"os"
"os/exec"
"sort"
+ "strconv"
"strings"
"codeberg.org/snonux/gitsyncer/internal/aitool"
@@ -164,10 +165,10 @@ func compareVersions(v1, v2 string) int {
var n1, n2 int
if i < len(parts1) {
- fmt.Sscanf(parts1[i], "%d", &n1)
+ n1 = parseVersionPart(parts1[i])
}
if i < len(parts2) {
- fmt.Sscanf(parts2[i], "%d", &n2)
+ n2 = parseVersionPart(parts2[i])
}
if n1 < n2 {
@@ -180,6 +181,16 @@ func compareVersions(v1, v2 string) int {
return 0
}
+func parseVersionPart(part string) int {
+ n, err := strconv.Atoi(part)
+ if err != nil {
+ // Keep current behavior for non-numeric segments.
+ return 0
+ }
+
+ return n
+}
+
// GetCommitsSinceTag gets all commits since a specific tag
func (m *Manager) GetCommitsSinceTag(repoPath, fromTag, toTag string) ([]string, error) {
// Use git log to get commits between tags