summaryrefslogtreecommitdiff
path: root/repository.go
diff options
context:
space:
mode:
authorAidan Nulman <[email protected]>2014-02-24 03:01:47 -0500
committerAidan Nulman <[email protected]>2014-02-24 03:01:47 -0500
commitdecaf064f9ace275789657343d5123ee5290ea31 (patch)
tree843bbf40222a52103a45337bac397371279c780c /repository.go
parent1c23e8ece34d217bcc787f1c5da6bfb143f27e9b (diff)
add custom refdb backend support
Diffstat (limited to 'repository.go')
-rw-r--r--repository.go26
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)