Monorepo for Tangled tangled.org

knotserver/xrpc: merge-base for combined patch in repo compare #1258

merged opened by oyster.cafe targeting master from lt/knot-merge-base-comined-patch
Labels

None yet.

assignee

None yet.

Participants 1
AT URI
at://did:plc:3fwecdnvtcscjnrx2p4n7alz/sh.tangled.repo.pull/3migofctxi322
+22 -3
Diff #0
+4
knotserver/git/cmd.go
··· 40 40 func (g *GitRepo) revParse(extraArgs ...string) ([]byte, error) { 41 41 return g.runGitCmd("rev-parse", extraArgs...) 42 42 } 43 + 44 + func (g *GitRepo) mergeBase(extraArgs ...string) ([]byte, error) { 45 + return g.runGitCmd("merge-base", extraArgs...) 46 + }
+10
knotserver/git/diff.go
··· 77 77 return &nd, nil 78 78 } 79 79 80 + func (g *GitRepo) MergeBase(a, b *object.Commit) (*object.Commit, error) { 81 + out, err := g.mergeBase(a.Hash.String(), b.Hash.String()) 82 + if err != nil { 83 + return nil, fmt.Errorf("merge-base %s %s: %w", a.Hash, b.Hash, err) 84 + } 85 + 86 + hash := plumbing.NewHash(strings.TrimSpace(string(out))) 87 + return g.r.CommitObject(hash) 88 + } 89 + 80 90 func (g *GitRepo) DiffTree(commit1, commit2 *object.Commit) (*types.DiffTree, error) { 81 91 tree1, err := commit1.Tree() 82 92 if err != nil {
+8 -3
knotserver/xrpc/repo_compare.go
··· 76 76 var combinedPatchRaw string 77 77 // we need the combined patch 78 78 if len(formatPatch) >= 2 { 79 - diffTree, err := gr.DiffTree(commit1, commit2) 79 + mergeBaseCommit, err := gr.MergeBase(commit1, commit2) 80 80 if err != nil { 81 81 x.Logger.Error("error comparing revisions", "msg", err.Error()) 82 82 } else { 83 - combinedPatch = diffTree.Diff 84 - combinedPatchRaw = diffTree.Patch 83 + diffTree, err := gr.DiffTree(mergeBaseCommit, commit2) 84 + if err != nil { 85 + x.Logger.Error("error comparing revisions", "msg", err.Error()) 86 + } else { 87 + combinedPatch = diffTree.Diff 88 + combinedPatchRaw = diffTree.Patch 89 + } 85 90 } 86 91 } 87 92

History

1 round 0 comments
sign up or login to add to the discussion
oyster.cafe submitted #0
1 commit
expand
knotserver/xrpc: merge-base for combined patch in repo compare
3/3 success
expand
expand 0 comments
pull request successfully merged