From c199e0cf2f53910616a34c4482f8ee53866fecfe Mon Sep 17 00:00:00 2001 From: Amolith Date: Sat, 22 Jun 2024 18:15:58 -0400 Subject: [PATCH] Improve repo cloning logic Implements: https://todo.sr.ht/~amolith/willow/13 --- git/git.go | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/git/git.go b/git/git.go index 8a4d9aa954f5df3e1b7997074c1adfb8c69da34f..2528d6eca14618750e39b4e96c01872139794602 100644 --- a/git/git.go +++ b/git/git.go @@ -112,20 +112,16 @@ func minimalClone(url string) (r *git.Repository, err error) { return nil, err } - if _, err := os.Stat(path); err == nil { - r, err := git.PlainOpen(path) - if err != nil { - return nil, err - } + r, err = git.PlainOpen(path) + if err == nil { err = r.Fetch(&git.FetchOptions{ RemoteName: "origin", Depth: 1, Tags: git.AllTags, }) - if errors.Is(err, git.NoErrAlreadyUpToDate) { - return r, nil - } return r, err + } else if !errors.Is(err, git.ErrRepositoryNotExists) { + return nil, err } r, err = git.PlainClone(path, false, &git.CloneOptions{