enable updating to a specific commit
1 file changed, 11 insertions(+), 7 deletions(-)
changed files
M internal/vcs/repository.go → internal/vcs/repository.go
@@ -46,8 +46,8 @@ return } -func (r *Repository) Update() (updated bool, err error) { - r.log.Info("updating repository", "from", r.headSHA()) +func (r *Repository) Update(rev string) (updated bool, err error) { + r.log.Info("updating repository", "from", r.HeadSHA()) err = r.repo.Fetch(&git.FetchOptions{ Prune: true, })@@ -73,12 +73,16 @@ return false, err } var hash plumbing.Hash - for _, ref := range refs { - if ref.Name() == plumbing.Main { - hash = ref.Hash() + if rev != "" { + for _, ref := range refs { + if ref.Name() == plumbing.Main { + hash = ref.Hash() - break + break + } } + } else { + hash = plumbing.NewHash(rev) } wt, err := r.repo.Worktree()@@ -116,7 +120,7 @@ return nil } -func (r *Repository) headSHA() string { +func (r *Repository) HeadSHA() string { head, err := r.repo.Head() if err != nil { return ""