MCPcopy Create free account
hub / github.com/libgit2/git2go / Merge

Method Merge

merge.go:199–223  ·  view source on GitHub ↗
(theirHeads []*AnnotatedCommit, mergeOptions *MergeOptions, checkoutOptions *CheckoutOptions)

Source from the content-addressed store, hash-verified

197)
198
199func (r *Repository) Merge(theirHeads []*AnnotatedCommit, mergeOptions *MergeOptions, checkoutOptions *CheckoutOptions) error {
200 runtime.LockOSThread()
201 defer runtime.UnlockOSThread()
202
203 var err error
204 cMergeOpts := populateMergeOptions(&C.git_merge_options{}, mergeOptions)
205 defer freeMergeOptions(cMergeOpts)
206 cCheckoutOptions := populateCheckoutOptions(&C.git_checkout_options{}, checkoutOptions, &err)
207 defer freeCheckoutOptions(cCheckoutOptions)
208
209 gmerge_head_array := make([]*C.git_annotated_commit, len(theirHeads))
210 for i := 0; i < len(theirHeads); i++ {
211 gmerge_head_array[i] = theirHeads[i].ptr
212 }
213 ptr := unsafe.Pointer(&gmerge_head_array[0])
214 ret := C.git_merge(r.ptr, (**C.git_annotated_commit)(ptr), C.size_t(len(theirHeads)), cMergeOpts, cCheckoutOptions)
215 runtime.KeepAlive(theirHeads)
216 if ret == C.int(ErrorCodeUser) && err != nil {
217 return err
218 }
219 if ret < 0 {
220 return MakeGitError(ret)
221 }
222 return nil
223}
224
225type MergeAnalysis int
226

Callers 1

TestMergeWithSelfFunction · 0.80

Calls 5

populateMergeOptionsFunction · 0.85
freeMergeOptionsFunction · 0.85
populateCheckoutOptionsFunction · 0.85
freeCheckoutOptionsFunction · 0.85
MakeGitErrorFunction · 0.85

Tested by 1

TestMergeWithSelfFunction · 0.64