diff options
| author | Josh Bleecher Snyder <[email protected]> | 2018-01-25 16:00:39 -0800 |
|---|---|---|
| committer | Josh Bleecher Snyder <[email protected]> | 2018-01-25 16:00:39 -0800 |
| commit | 03339f731aba66baacab3fd67e7b2d185cdacb33 (patch) | |
| tree | 5de925da125c1c6e78ffb50bec70529a46a34913 /merge.go | |
| parent | 432a164805a43a5ee0df15f7939dc771fc8d4fbd (diff) | |
merge: add two missing AnnotatedCommit methods
Diffstat (limited to 'merge.go')
| -rw-r--r-- | merge.go | 25 |
1 files changed, 25 insertions, 0 deletions
@@ -27,6 +27,15 @@ func newAnnotatedCommitFromC(ptr *C.git_annotated_commit, r *Repository) *Annota return mh } +func (mh *AnnotatedCommit) Id() *Oid { + runtime.LockOSThread() + defer runtime.UnlockOSThread() + + ret := newOidFromC(C.git_annotated_commit_id(mh.ptr)) + runtime.KeepAlive(mh) + return ret +} + func (mh *AnnotatedCommit) Free() { runtime.SetFinalizer(mh, nil) C.git_annotated_commit_free(mh.ptr) @@ -79,6 +88,22 @@ func (r *Repository) AnnotatedCommitFromRef(ref *Reference) (*AnnotatedCommit, e return newAnnotatedCommitFromC(ptr, r), nil } +func (r *Repository) AnnotatedCommitFromRevspec(spec string) (*AnnotatedCommit, error) { + crevspec := C.CString(spec) + defer C.free(unsafe.Pointer(crevspec)) + + runtime.LockOSThread() + defer runtime.UnlockOSThread() + + var ptr *C.git_annotated_commit + ret := C.git_annotated_commit_from_revspec(&ptr, r.ptr, crevspec) + runtime.KeepAlive(r) + if ret < 0 { + return nil, MakeGitError(ret) + } + return newAnnotatedCommitFromC(ptr, r), nil +} + type MergeTreeFlag int const ( |
