From 691d8f23bad4e6ff850fd0504bc7a8ed1cd656e9 Mon Sep 17 00:00:00 2001 From: David Calavera Date: Thu, 24 Jul 2014 17:41:10 -0700 Subject: Add Repository#RevParseSingle. --- revparse.go | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'revparse.go') diff --git a/revparse.go b/revparse.go index bc9a4e2..9cd494f 100644 --- a/revparse.go +++ b/revparse.go @@ -58,3 +58,20 @@ func (r *Repository) RevParse(spec string) (*RevSpec, error) { return newRevSpecFrom(ptr, r), nil } + +func (r *Repository) RevParseSingle(spec string) (Object, error) { + cspec := C.CString(spec) + defer C.free(unsafe.Pointer(cspec)) + + var obj *C.git_object + + runtime.LockOSThread() + defer runtime.UnlockOSThread() + + ecode := C.git_revparse_single(&obj, r.ptr, cspec) + if ecode != 0 { + return nil, MakeGitError(ecode) + } + + return allocObject(obj, r), nil +} -- cgit v1.2.3