From 429408dbe536157c8cd9e384f121c58e52ce9f8e Mon Sep 17 00:00:00 2001 From: Simon Menke Date: Thu, 27 Mar 2014 11:32:22 +0100 Subject: [PATCH 1/2] Added force argument for (*Submodule).Reload() and (*Repository).ReloadAllSubmodules() --- submodule.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/submodule.go b/submodule.go index a94afd4..f6ab5e1 100644 --- a/submodule.go +++ b/submodule.go @@ -287,22 +287,22 @@ func (sub *Submodule) Open() (*Repository, error) { return repo, nil } -func (sub *Submodule) Reload() error { +func (sub *Submodule) Reload(force bool) error { runtime.LockOSThread() defer runtime.UnlockOSThread() - ret := C.git_submodule_reload(sub.ptr) + ret := C.git_submodule_reload(sub.ptr, cbool(force)) if ret < 0 { return MakeGitError(ret) } return nil } -func (repo *Repository) ReloadAllSubmodules() error { +func (repo *Repository) ReloadAllSubmodules(force bool) error { runtime.LockOSThread() defer runtime.UnlockOSThread() - ret := C.git_submodule_reload_all(repo.ptr) + ret := C.git_submodule_reload_all(repo.ptr, cbool(force)) if ret < 0 { return MakeGitError(ret) } -- 2.45.2 From 552557ba51343076c1f7378fc90f88508cab8b4b Mon Sep 17 00:00:00 2001 From: Jesse Ezell Date: Sun, 30 Mar 2014 13:23:03 -0700 Subject: [PATCH 2/2] add missing walk functions --- walk.go | 105 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file 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) { -- 2.45.2