(name, target string, force bool, msg string)
| 72 | } |
| 73 | |
| 74 | func (c *ReferenceCollection) CreateSymbolic(name, target string, force bool, msg string) (*Reference, error) { |
| 75 | cname := C.CString(name) |
| 76 | defer C.free(unsafe.Pointer(cname)) |
| 77 | |
| 78 | ctarget := C.CString(target) |
| 79 | defer C.free(unsafe.Pointer(ctarget)) |
| 80 | |
| 81 | var cmsg *C.char |
| 82 | if msg == "" { |
| 83 | cmsg = nil |
| 84 | } else { |
| 85 | cmsg = C.CString(msg) |
| 86 | defer C.free(unsafe.Pointer(cmsg)) |
| 87 | } |
| 88 | |
| 89 | var ptr *C.git_reference |
| 90 | |
| 91 | runtime.LockOSThread() |
| 92 | defer runtime.UnlockOSThread() |
| 93 | |
| 94 | ecode := C.git_reference_symbolic_create(&ptr, c.repo.ptr, cname, ctarget, cbool(force), cmsg) |
| 95 | runtime.KeepAlive(c) |
| 96 | if ecode < 0 { |
| 97 | return nil, MakeGitError(ecode) |
| 98 | } |
| 99 | |
| 100 | return newReferenceFromC(ptr, c.repo), nil |
| 101 | } |
| 102 | |
| 103 | // EnsureLog ensures that there is a reflog for the given reference |
| 104 | // name and creates an empty one if necessary. |
nothing calls this directly
no test coverage detected