Implement git_repository_set_head(_detached)

This closes #88

Signed-off-by: Ondrej Kupka <ondra.cap@gmail.com>
This commit is contained in:
Ondrej Kupka 2014-05-02 10:44:42 +02:00
parent 5809f03108
commit 2cf19370bc
1 changed files with 43 additions and 0 deletions

View File

@ -176,6 +176,49 @@ func (v *Repository) Head() (*Reference, error) {
return newReferenceFromC(ptr), nil return newReferenceFromC(ptr), nil
} }
func (v *Repository) SetHead(refname string, sig *Signature, msg string) error {
cname := C.CString(refname)
defer C.free(unsafe.Pointer(cname))
csig := sig.toC()
defer C.free(unsafe.Pointer(csig))
var cmsg *C.char
if msg != "" {
cmsg = C.CString(msg)
defer C.free(unsafe.Pointer(cmsg))
}
runtime.LockOSThread()
defer runtime.UnlockOSThread()
ecode := C.git_repository_set_head(v.ptr, cname, csig, cmsg)
if ecode != 0 {
return MakeGitError(ecode)
}
return nil
}
func (v *Repository) SetHeadDetached(id *Oid, sig *Signature, msg string) error {
csig := sig.toC()
defer C.free(unsafe.Pointer(csig))
var cmsg *C.char
if msg != "" {
cmsg = C.CString(msg)
defer C.free(unsafe.Pointer(cmsg))
}
runtime.LockOSThread()
defer runtime.UnlockOSThread()
ecode := C.git_repository_set_head_detached(v.ptr, id.toC(), csig, cmsg)
if ecode != 0 {
return MakeGitError(ecode)
}
return nil
}
func (v *Repository) CreateReference(name string, id *Oid, force bool, sig *Signature, msg string) (*Reference, error) { func (v *Repository) CreateReference(name string, id *Oid, force bool, sig *Signature, msg string) (*Reference, error) {
cname := C.CString(name) cname := C.CString(name)
defer C.free(unsafe.Pointer(cname)) defer C.free(unsafe.Pointer(cname))