| 98 | } |
| 99 | |
| 100 | func (r *Repository) AnnotatedCommitFromRevspec(spec string) (*AnnotatedCommit, error) { |
| 101 | crevspec := C.CString(spec) |
| 102 | defer C.free(unsafe.Pointer(crevspec)) |
| 103 | |
| 104 | runtime.LockOSThread() |
| 105 | defer runtime.UnlockOSThread() |
| 106 | |
| 107 | var ptr *C.git_annotated_commit |
| 108 | ret := C.git_annotated_commit_from_revspec(&ptr, r.ptr, crevspec) |
| 109 | runtime.KeepAlive(r) |
| 110 | if ret < 0 { |
| 111 | return nil, MakeGitError(ret) |
| 112 | } |
| 113 | |
| 114 | annotatedCommit := newAnnotatedCommitFromC(ptr, r) |
| 115 | runtime.KeepAlive(r) |
| 116 | return annotatedCommit, nil |
| 117 | } |
| 118 | |
| 119 | type MergeTreeFlag int |
| 120 | |