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

Method MergeAnalysis

merge.go:246–264  ·  view source on GitHub ↗

MergeAnalysis returns the possible actions which could be taken by a 'git-merge' command. There may be multiple answers, so the first return value is a bitmask of MergeAnalysis values.

(theirHeads []*AnnotatedCommit)

Source from the content-addressed store, hash-verified

244// a 'git-merge' command. There may be multiple answers, so the first
245// return value is a bitmask of MergeAnalysis values.
246func (r *Repository) MergeAnalysis(theirHeads []*AnnotatedCommit) (MergeAnalysis, MergePreference, error) {
247 runtime.LockOSThread()
248 defer runtime.UnlockOSThread()
249
250 gmerge_head_array := make([]*C.git_annotated_commit, len(theirHeads))
251 for i := 0; i < len(theirHeads); i++ {
252 gmerge_head_array[i] = theirHeads[i].ptr
253 }
254 ptr := unsafe.Pointer(&gmerge_head_array[0])
255 var analysis C.git_merge_analysis_t
256 var preference C.git_merge_preference_t
257 err := C.git_merge_analysis(&analysis, &preference, r.ptr, (**C.git_annotated_commit)(ptr), C.size_t(len(theirHeads)))
258 runtime.KeepAlive(theirHeads)
259 if err < 0 {
260 return MergeAnalysisNone, MergePreferenceNone, MakeGitError(err)
261 }
262 return MergeAnalysis(analysis), MergePreference(preference), nil
263
264}
265
266func (r *Repository) MergeCommits(ours *Commit, theirs *Commit, options *MergeOptions) (*Index, error) {
267 runtime.LockOSThread()

Callers 1

Calls 3

MakeGitErrorFunction · 0.85
MergeAnalysisTypeAlias · 0.85
MergePreferenceTypeAlias · 0.85

Tested by 1