diff --git a/knotserver/git/git.go b/knotserver/git/git.go index f1bf99e1..f8ba4665 100644 --- a/knotserver/git/git.go +++ b/knotserver/git/git.go @@ -82,7 +82,7 @@ func (g *GitRepo) Hash() plumbing.Hash { // re-open a repository and update references func (g *GitRepo) Refresh() error { - refreshed, err := PlainOpen(g.path) + refreshed, err := Open(g.path, g.Hash().String()) if err != nil { return err } diff --git a/knotserver/xrpc/merge.go b/knotserver/xrpc/merge.go index 20666f85..48ae2c4d 100644 --- a/knotserver/xrpc/merge.go +++ b/knotserver/xrpc/merge.go @@ -110,14 +110,20 @@ func (x *Xrpc) Merge(w http.ResponseWriter, r *http.Request) { } } + oldSha := gr.Hash() + if err := gr.Refresh(); err != nil { + l.Error("failed to refresh", "error", err) + } + newSha := gr.Hash() + go func() { refUpdate := tangled.GitRefUpdate{ RepoDid: &repoDid, OwnerDid: &data.Did, RepoName: data.Name, Ref: data.Branch, - OldSha: "", // TODO: fill this - NewSha: "", // TODO: fill this + OldSha: oldSha.String(), + NewSha: newSha.String(), CommitterDid: actorDid.String(), } eventJson, err := json.Marshal(refUpdate)