From 80ad996dc13cf5796130e409ef3af46bdc70be7e Mon Sep 17 00:00:00 2001 From: cloudson Date: Thu, 17 Apr 2014 08:33:22 -0300 Subject: [PATCH 1/2] Recursive find respository --- repository.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/repository.go b/repository.go index d757747..53484f8 100644 --- a/repository.go +++ b/repository.go @@ -24,7 +24,7 @@ func OpenRepository(path string) (*Repository, error) { runtime.LockOSThread() defer runtime.UnlockOSThread() - ret := C.git_repository_open(&repo.ptr, cpath) + ret := C.git_repository_open_ext(&repo.ptr, cpath, 0, nil) if ret < 0 { return nil, MakeGitError(ret) } From 591a67fef87c8d3df702681ce9221379df784f9a Mon Sep 17 00:00:00 2001 From: cloudson Date: Sat, 26 Apr 2014 20:35:22 -0300 Subject: [PATCH 2/2] Add function to open repository from subpaths --- repository.go | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/repository.go b/repository.go index 53484f8..02dcff6 100644 --- a/repository.go +++ b/repository.go @@ -24,6 +24,24 @@ func OpenRepository(path string) (*Repository, error) { runtime.LockOSThread() defer runtime.UnlockOSThread() + ret := C.git_repository_open(&repo.ptr, cpath) + if ret < 0 { + return nil, MakeGitError(ret) + } + + runtime.SetFinalizer(repo, (*Repository).Free) + return repo, nil +} + +func OpenRepositoryExtended(path string) (*Repository, error) { + repo := new(Repository) + + cpath := C.CString(path) + defer C.free(unsafe.Pointer(cpath)) + + runtime.LockOSThread() + defer runtime.UnlockOSThread() + ret := C.git_repository_open_ext(&repo.ptr, cpath, 0, nil) if ret < 0 { return nil, MakeGitError(ret)