MergeBaseMany finds a merge base given a list of commits.
(oids []*Oid)
| 353 | |
| 354 | // MergeBaseMany finds a merge base given a list of commits. |
| 355 | func (r *Repository) MergeBaseMany(oids []*Oid) (*Oid, error) { |
| 356 | coids := make([]C.git_oid, len(oids)) |
| 357 | for i := 0; i < len(oids); i++ { |
| 358 | coids[i] = *oids[i].toC() |
| 359 | } |
| 360 | |
| 361 | runtime.LockOSThread() |
| 362 | defer runtime.UnlockOSThread() |
| 363 | |
| 364 | var oid C.git_oid |
| 365 | ret := C.git_merge_base_many(&oid, r.ptr, C.size_t(len(oids)), &coids[0]) |
| 366 | runtime.KeepAlive(r) |
| 367 | runtime.KeepAlive(coids) |
| 368 | if ret < 0 { |
| 369 | return nil, MakeGitError(ret) |
| 370 | } |
| 371 | return newOidFromC(&oid), nil |
| 372 | } |
| 373 | |
| 374 | // MergeBasesMany finds all merge bases given a list of commits. |
| 375 | func (r *Repository) MergeBasesMany(oids []*Oid) ([]*Oid, error) { |