summaryrefslogtreecommitdiff
path: root/walk.go
diff options
context:
space:
mode:
authorJesse Ezell <[email protected]>2014-04-04 00:30:05 -0700
committerJesse Ezell <[email protected]>2014-04-04 00:30:05 -0700
commitb00cb1a343b42130bd963ce5f6aff49527021259 (patch)
treef4d2ec2d5e4823ecce89092cd6748856c0318053 /walk.go
parent4553b3ada6be15c47250bfb7948493b6cb88031b (diff)
parent9cd1d129bcd567ef65137783a603f8d898d8d933 (diff)
Merge remote-tracking branch 'libgit/master' into add-basic-diff-patch
Diffstat (limited to 'walk.go')
-rw-r--r--walk.go105
1 files changed, 102 insertions, 3 deletions
diff --git a/walk.go b/walk.go
index 71df7bb..f7c147d 100644
--- a/walk.go
+++ b/walk.go
@@ -9,6 +9,7 @@ import "C"
import (
"io"
"runtime"
+ "unsafe"
)
// RevWalk
@@ -37,8 +38,57 @@ func (v *RevWalk) Reset() {
C.git_revwalk_reset(v.ptr)
}
-func (v *RevWalk) Push(id *Oid) {
- C.git_revwalk_push(v.ptr, id.toC())
+func (v *RevWalk) Push(id *Oid) error {
+ runtime.LockOSThread()
+ defer runtime.UnlockOSThread()
+
+ ecode := C.git_revwalk_push(v.ptr, id.toC())
+ if ecode < 0 {
+ return MakeGitError(ecode)
+ }
+ return nil
+}
+
+func (v *RevWalk) PushGlob(glob string) error {
+ runtime.LockOSThread()
+ defer runtime.UnlockOSThread()
+
+ cstr := C.CString(glob)
+ defer C.free(unsafe.Pointer(cstr))
+
+ ecode := C.git_revwalk_push_glob(v.ptr, cstr)
+ if ecode < 0 {
+ return MakeGitError(ecode)
+ }
+ return nil
+}
+
+func (v *RevWalk) PushRange(r string) error {
+ runtime.LockOSThread()
+ defer runtime.UnlockOSThread()
+
+ cstr := C.CString(r)
+ defer C.free(unsafe.Pointer(cstr))
+
+ ecode := C.git_revwalk_push_range(v.ptr, cstr)
+ if ecode < 0 {
+ return MakeGitError(ecode)
+ }
+ return nil
+}
+
+func (v *RevWalk) PushRef(r string) error {
+ runtime.LockOSThread()
+ defer runtime.UnlockOSThread()
+
+ cstr := C.CString(r)
+ defer C.free(unsafe.Pointer(cstr))
+
+ ecode := C.git_revwalk_push_ref(v.ptr, cstr)
+ if ecode < 0 {
+ return MakeGitError(ecode)
+ }
+ return nil
}
func (v *RevWalk) PushHead() (err error) {
@@ -49,8 +99,57 @@ func (v *RevWalk) PushHead() (err error) {
if ecode < 0 {
err = MakeGitError(ecode)
}
+ return nil
+}
- return
+func (v *RevWalk) Hide(id *Oid) error {
+ runtime.LockOSThread()
+ defer runtime.UnlockOSThread()
+
+ ecode := C.git_revwalk_hide(v.ptr, id.toC())
+ if ecode < 0 {
+ return MakeGitError(ecode)
+ }
+ return nil
+}
+
+func (v *RevWalk) HideGlob(glob string) error {
+ runtime.LockOSThread()
+ defer runtime.UnlockOSThread()
+
+ cstr := C.CString(glob)
+ defer C.free(unsafe.Pointer(cstr))
+
+ ecode := C.git_revwalk_hide_glob(v.ptr, cstr)
+ if ecode < 0 {
+ return MakeGitError(ecode)
+ }
+ return nil
+}
+
+func (v *RevWalk) HideRef(r string) error {
+ runtime.LockOSThread()
+ defer runtime.UnlockOSThread()
+
+ cstr := C.CString(r)
+ defer C.free(unsafe.Pointer(cstr))
+
+ ecode := C.git_revwalk_hide_ref(v.ptr, cstr)
+ if ecode < 0 {
+ return MakeGitError(ecode)
+ }
+ return nil
+}
+
+func (v *RevWalk) HideHead() (err error) {
+ runtime.LockOSThread()
+ defer runtime.UnlockOSThread()
+
+ ecode := C.git_revwalk_hide_head(v.ptr)
+ if ecode < 0 {
+ err = MakeGitError(ecode)
+ }
+ return nil
}
func (v *RevWalk) Next(id *Oid) (err error) {