From 76e88b30c08a34be374c62bf0e0e313e720d4b45 Mon Sep 17 00:00:00 2001 From: wxiaoguang Date: Wed, 21 Oct 2026 07:26:56 +0800 Subject: [PATCH] fix: use clear error message when failed to parse git version (#39898) fix #39892 --- modules/git/git.go | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/modules/git/git.go b/modules/git/git.go index 7c75f0ce8ec..e30978021a3 100644 --- a/modules/git/git.go +++ b/modules/git/git.go @@ -68,12 +68,12 @@ func DefaultFeatures() *Features { func loadGitVersionFeatures() (*Features, error) { stdout, _, runErr := gitcmd.NewCommand("version").RunStdString(context.Background()) if runErr != nil { - return nil, runErr + return nil, fmt.Errorf(`failed to run command "git version": %w`, runErr) } ver, err := parseGitVersionLine(strings.TrimSpace(stdout)) if err != nil { - return nil, err + return nil, fmt.Errorf(`failed to parse output of command "git version": %w`, err) } features := &Features{gitVersion: ver} @@ -104,7 +104,11 @@ func parseGitVersionLine(s string) (*version.Version, error) { if len(versionFields) > 3 { versionFields = versionFields[:3] } - return version.NewVersion(strings.Join(versionFields, ".")) + ver, err := version.NewVersion(strings.Join(versionFields, ".")) + if err != nil { + return nil, fmt.Errorf("invalid git version: %q: %w", s, err) + } + return ver, nil } func checkGitVersionCompatibility(gitVer *version.Version) error {