all repos — homestead @ 78339aad9fbef695b9bcc0c87bf9fe0e4c1c7998

Code for my website

update worktree after fetching updates

Alan Pearce
commit

78339aad9fbef695b9bcc0c87bf9fe0e4c1c7998

parent

f58bae4b948668dc3db153c479799469539a2bc3

1 file changed, 15 insertions(+), 0 deletions(-)

jump to
M internal/vcs/repository.gointernal/vcs/repository.go
@@ -3,6 +3,7 @@
import ( "os" "website/internal/config" + "website/internal/log" "github.com/go-git/go-git/v5" gitc "github.com/go-git/go-git/v5/config"
@@ -39,6 +40,7 @@ _, err := repo.Update(cfg)
if err != nil { return nil, err } + return repo, nil }
@@ -48,6 +50,7 @@ }, nil
} func (r *Repository) Update(cfg *Config) (bool, error) { + log.Debug("updating repository") err := r.repo.Fetch(&git.FetchOptions{ RefSpecs: []gitc.RefSpec{ gitc.RefSpec(
@@ -57,9 +60,21 @@ },
}) if err != nil { if errors.Is(err, git.NoErrAlreadyUpToDate) { + log.Debug("no changes to pull") return false, nil } + return false, err } + + head, err := r.repo.Head() + if err != nil { + return false, err + } + log.Debug("applying changes", "head", head.Name()) + err = r.repo.Merge(*head, git.MergeOptions{ + Strategy: git.FastForwardMerge, + }) + return true, nil }