Dwim looks up a reference by DWIMing its short name
(name string)
| 138 | |
| 139 | // Dwim looks up a reference by DWIMing its short name |
| 140 | func (c *ReferenceCollection) Dwim(name string) (*Reference, error) { |
| 141 | cname := C.CString(name) |
| 142 | defer C.free(unsafe.Pointer(cname)) |
| 143 | |
| 144 | runtime.LockOSThread() |
| 145 | defer runtime.UnlockOSThread() |
| 146 | |
| 147 | var ptr *C.git_reference |
| 148 | ret := C.git_reference_dwim(&ptr, c.repo.ptr, cname) |
| 149 | runtime.KeepAlive(c) |
| 150 | if ret < 0 { |
| 151 | return nil, MakeGitError(ret) |
| 152 | } |
| 153 | |
| 154 | return newReferenceFromC(ptr, c.repo), nil |
| 155 | } |
| 156 | |
| 157 | func newReferenceFromC(ptr *C.git_reference, repo *Repository) *Reference { |
| 158 | ref := &Reference{ptr: ptr, repo: repo} |