From e0bdf2f57bd4f1b244812457f1b8525fc208222a Mon Sep 17 00:00:00 2001 From: magerbeton Date: Sun, 23 Aug 2026 16:07:55 +0200 Subject: [PATCH] fix(git): tolerate remotes without a url key git-annex S3 special remotes have no url key; running `git config --get-all remote..url` on them exits 1, which made tea hard-fail in Config() on any repo that has such a remote. Treat a missing key (exit 1 with empty or 'No such section or key' stderr) as an empty URL list, mirroring the existing branch-section handling. --- modules/git/cli_backend.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/modules/git/cli_backend.go b/modules/git/cli_backend.go index d458de2..0641520 100644 --- a/modules/git/cli_backend.go +++ b/modules/git/cli_backend.go @@ -73,7 +73,15 @@ func (r *cliRepository) Config() (*Config, error) { for _, remoteName := range strings.Fields(remoteOut) { urlOut, err := r.git(nil, nil, "config", "--get-all", "remote."+remoteName+".url") if err != nil { - return nil, err + // tolerate remotes without a url key (e.g. git-annex special remotes) + var gitErr *gitCommandError + if !errors.As(err, &gitErr) { + return nil, err + } + stderr := strings.TrimSpace(gitErr.stderr) + if stderr != "" && !strings.Contains(stderr, "No such section or key") { + return nil, err + } } cfg.Remotes[remoteName] = &RemoteConfig{Name: remoteName, URLs: splitNonEmptyLines(urlOut)} }