MCPcopy Create free account
hub / github.com/libgit2/git2go / CreateSymbolic

Method CreateSymbolic

reference.go:74–101  ·  view source on GitHub ↗
(name, target string, force bool, msg string)

Source from the content-addressed store, hash-verified

72}
73
74func (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.

Callers

nothing calls this directly

Calls 4

cboolFunction · 0.85
MakeGitErrorFunction · 0.85
newReferenceFromCFunction · 0.85
freeMethod · 0.80

Tested by

no test coverage detected