From c75e0221d70bc471917aa3de34ca1ead1a747987 Mon Sep 17 00:00:00 2001 From: Josh Bleecher Snyder Date: Tue, 6 Feb 2018 21:55:01 -0800 Subject: cherrypick: wrap git_cherrypick_commit --- cherrypick.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/cherrypick.go b/cherrypick.go index 8983a7a..e86e940 100644 --- a/cherrypick.go +++ b/cherrypick.go @@ -73,3 +73,19 @@ func (v *Repository) Cherrypick(commit *Commit, opts CherrypickOptions) error { } return nil } + +func (r *Repository) CherrypickCommit(pick, our *Commit, opts CherrypickOptions) (*Index, error) { + runtime.LockOSThread() + defer runtime.UnlockOSThread() + + cOpts := opts.MergeOpts.toC() + + var ptr *C.git_index + ret := C.git_cherrypick_commit(&ptr, r.ptr, pick.cast_ptr, our.cast_ptr, C.uint(opts.Mainline), cOpts) + runtime.KeepAlive(pick) + runtime.KeepAlive(our) + if ret < 0 { + return nil, MakeGitError(ret) + } + return newIndexFromC(ptr, r), nil +} -- cgit v1.2.3