From bbdc7a825d1c7e65516cbc92e72335bf1f35c2f0 Mon Sep 17 00:00:00 2001 From: Frank Benkstein Date: Mon, 9 Jun 2014 23:19:17 +0200 Subject: add support for annotated tags --- repository.go | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'repository.go') diff --git a/repository.go b/repository.go index 2354f99..c380de1 100644 --- a/repository.go +++ b/repository.go @@ -164,6 +164,15 @@ func (v *Repository) LookupBlob(id *Oid) (*Blob, error) { return obj.(*Blob), nil } +func (v *Repository) LookupTag(id *Oid) (*Tag, error) { + obj, err := v.lookupType(id, ObjectTag) + if err != nil { + return nil, err + } + + return obj.(*Tag), nil +} + func (v *Repository) LookupReference(name string) (*Reference, error) { cname := C.CString(name) defer C.free(unsafe.Pointer(cname)) @@ -356,6 +365,30 @@ func (v *Repository) CreateCommit( return oid, nil } +func (v *Repository) CreateTag( + name string, commit *Commit, tagger *Signature, message string) (*Oid, error) { + + oid := new(Oid) + + cname := C.CString(name) + defer C.free(unsafe.Pointer(cname)) + + cmessage := C.CString(message) + defer C.free(unsafe.Pointer(cmessage)) + + taggerSig := tagger.toC() + defer C.git_signature_free(taggerSig) + + ctarget := commit.gitObject.ptr + + ret := C.git_tag_create(oid.toC(), v.ptr, cname, ctarget, taggerSig, cmessage, 0) + if ret < 0 { + return nil, MakeGitError(ret) + } + + return oid, nil +} + func (v *Odb) Free() { runtime.SetFinalizer(v, nil) C.git_odb_free(v.ptr) -- cgit v1.2.3 From b3306bee412e29558ac334d2a4bbc0be7d85e2d5 Mon Sep 17 00:00:00 2001 From: Frank Benkstein Date: Wed, 11 Jun 2014 19:55:24 +0200 Subject: fix indentation --- repository.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'repository.go') diff --git a/repository.go b/repository.go index c380de1..8cc966c 100644 --- a/repository.go +++ b/repository.go @@ -379,7 +379,7 @@ func (v *Repository) CreateTag( taggerSig := tagger.toC() defer C.git_signature_free(taggerSig) - ctarget := commit.gitObject.ptr + ctarget := commit.gitObject.ptr ret := C.git_tag_create(oid.toC(), v.ptr, cname, ctarget, taggerSig, cmessage, 0) if ret < 0 { -- cgit v1.2.3