diff options
Diffstat (limited to 'repository.go')
| -rw-r--r-- | repository.go | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/repository.go b/repository.go index 48c2b46..6fbf1d3 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) @@ -51,6 +55,23 @@ func InitRepository(path string, isbare bool) (*Repository, error) { return repo, nil } +func NewRepositoryWrapOdb(odb *Odb) (repo *Repository, err error) { + repo = new(Repository) + + ret := C.git_repository_wrap_odb(&repo.ptr, odb.ptr) + if ret < 0 { + return nil, LastError() + } + + 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() { runtime.SetFinalizer(v, nil) C.git_repository_free(v.ptr) @@ -261,6 +282,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) |
