diff options
| author | Aidan Nulman <[email protected]> | 2014-02-24 03:01:47 -0500 |
|---|---|---|
| committer | Aidan Nulman <[email protected]> | 2014-02-24 03:01:47 -0500 |
| commit | decaf064f9ace275789657343d5123ee5290ea31 (patch) | |
| tree | 843bbf40222a52103a45337bac397371279c780c /repository.go | |
| parent | 1c23e8ece34d217bcc787f1c5da6bfb143f27e9b (diff) | |
add custom refdb backend support
Diffstat (limited to 'repository.go')
| -rw-r--r-- | repository.go | 26 |
1 files changed, 20 insertions, 6 deletions
diff --git a/repository.go b/repository.go index 68b9aba..f8b327a 100644 --- a/repository.go +++ b/repository.go @@ -15,6 +15,10 @@ type Repository struct { ptr *C.git_repository } +func (v *Repository) Pointer() *C.git_repository { + return v.ptr +} + func OpenRepository(path string) (*Repository, error) { repo := new(Repository) @@ -52,15 +56,20 @@ func InitRepository(path string, isbare bool) (*Repository, error) { } func NewRepositoryWrapOdb(odb *Odb) (repo *Repository, err error) { - repo = new(Repository) + repo = new(Repository) - ret := C.git_repository_wrap_odb(&repo.ptr, odb.ptr) - if ret < 0 { - return nil, LastError() + ret := C.git_repository_wrap_odb(&repo.ptr, odb.ptr) + if ret < 0 { + return nil, LastError() } - runtime.SetFinalizer(repo, (*Repository).Free) - return + runtime.SetFinalizer(repo, (*Repository).Free) + return +} + +func (v *Repository) SetRefdb(refdb *Refdb) { + C.git_repository_set_refdb(v.ptr, refdb.ptr) + return } func (v *Repository) Free() { @@ -269,6 +278,11 @@ func (v *Odb) Free() { C.git_odb_free(v.ptr) } +func (v *Refdb) Free() { + runtime.SetFinalizer(v, nil) + C.git_refdb_free(v.ptr) +} + func (v *Repository) Odb() (odb *Odb, err error) { odb = new(Odb) |
