summaryrefslogtreecommitdiff
path: root/walk.go
diff options
context:
space:
mode:
authorJesse Ezell <[email protected]>2014-04-04 00:26:22 -0700
committerJesse Ezell <[email protected]>2014-04-04 00:26:22 -0700
commit8319a792f3184714d8f2bfa562523d1a91a9392c (patch)
treec3914d4a38355f9145884c3a278b81fbb428ce46 /walk.go
parent5590078e6ff04be425b4a833adb44a0845c0b52f (diff)
parent9cd1d129bcd567ef65137783a603f8d898d8d933 (diff)
Merge remote-tracking branch 'libgit/master' into branch-iterator
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) {