// Format prints the DescribeResult as a string. func (result *DescribeResult) Format(opts *DescribeFormatOptions) (string, error) { resultBuf := C.git_buf{} var cFormatOpts *C.git_describe_format_options if opts != nil { cDirtySuffix := C.CString(opts.DirtySuffix) defer C.free(unsafe.Pointer(cDirtySuffix)) cFormatOpts = &C.git_describe_format_options{ version: C.GIT_DESCRIBE_FORMAT_OPTIONS_VERSION, abbreviated_size: C.uint(opts.AbbreviatedSize), always_use_long_format: cbool(opts.AlwaysUseLongFormat), dirty_suffix: cDirtySuffix, } } runtime.LockOSThread() defer runtime.UnlockOSThread() ecode := C.git_describe_format(&resultBuf, result.ptr, cFormatOpts) if ecode < 0 { return "", MakeGitError(ecode) } defer C.git_buf_free(&resultBuf) return C.GoString(resultBuf.ptr), nil }
func SearchPath(level ConfigLevel) (string, error) { var buf C.git_buf defer C.git_buf_free(&buf) runtime.LockOSThread() defer runtime.UnlockOSThread() err := C._go_git_opts_get_search_path(C.int(level), &buf) if err < 0 { return "", MakeGitError(err) } return C.GoString(buf.ptr), nil }
func ConfigFindXDG() (string, error) { var buf C.git_buf defer C.git_buf_free(&buf) runtime.LockOSThread() defer runtime.UnlockOSThread() ret := C.git_config_find_xdg(&buf) if ret < 0 { return "", MakeGitError(ret) } return C.GoString(buf.ptr), nil }
// DefaultRef returns the default notes reference for a repository func (c *NoteCollection) DefaultRef() (string, error) { buf := C.git_buf{} runtime.LockOSThread() defer runtime.UnlockOSThread() if ret := C.git_note_default_ref(&buf, c.repo.ptr); ret < 0 { return "", MakeGitError(ret) } ret := C.GoString(buf.ptr) C.git_buf_free(&buf) return ret, nil }
func (repo *Repository) UpstreamName(canonicalBranchName string) (string, error) { cName := C.CString(canonicalBranchName) nameBuf := C.git_buf{} runtime.LockOSThread() defer runtime.UnlockOSThread() ret := C.git_branch_upstream_name(&nameBuf, repo.ptr, cName) if ret < 0 { return "", MakeGitError(ret) } defer C.git_buf_free(&nameBuf) return C.GoString(nameBuf.ptr), nil }
func (c *Config) LookupString(name string) (string, error) { cname := C.CString(name) defer C.free(unsafe.Pointer(cname)) valBuf := C.git_buf{} runtime.LockOSThread() defer runtime.UnlockOSThread() if ret := C.git_config_get_string_buf(&valBuf, c.ptr, cname); ret < 0 { return "", MakeGitError(ret) } defer C.git_buf_free(&valBuf) return C.GoString(valBuf.ptr), nil }
func Discover(start string, across_fs bool, ceiling_dirs []string) (string, error) { ceildirs := C.CString(strings.Join(ceiling_dirs, string(C.GIT_PATH_LIST_SEPARATOR))) defer C.free(unsafe.Pointer(ceildirs)) cstart := C.CString(start) defer C.free(unsafe.Pointer(cstart)) var buf C.git_buf defer C.git_buf_free(&buf) runtime.LockOSThread() defer runtime.UnlockOSThread() ret := C.git_repository_discover(&buf, cstart, cbool(across_fs), ceildirs) if ret < 0 { return "", MakeGitError(ret) } return C.GoString(buf.ptr), nil }