diff options
| author | Carlos Martín Nieto <[email protected]> | 2014-05-23 16:02:36 +0200 |
|---|---|---|
| committer | Carlos Martín Nieto <[email protected]> | 2014-05-23 16:02:36 +0200 |
| commit | ec97cb4473ead2d9111ba4a519f3eb87eb7fdc4f (patch) | |
| tree | a1a6116a0f3b2219dc92674f6b42eb0cb3bae51f /repository.go | |
| parent | 22bcd7decf314f0482643554d5472d1d8dc7c12a (diff) | |
| parent | 591a67fef87c8d3df702681ce9221379df784f9a (diff) | |
Merge branch 'repo-ext'
Diffstat (limited to 'repository.go')
| -rw-r--r-- | repository.go | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/repository.go b/repository.go index 81a46b1..5ae10f2 100644 --- a/repository.go +++ b/repository.go @@ -33,6 +33,24 @@ func OpenRepository(path string) (*Repository, error) { 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) + } + + runtime.SetFinalizer(repo, (*Repository).Free) + return repo, nil +} + func InitRepository(path string, isbare bool) (*Repository, error) { repo := new(Repository) |
