Merge pull request #167 from calavera/fix_git_submodules
Fix inconsistent function call in Submodule.
This commit is contained in:
commit
69be70646c
48
submodule.go
48
submodule.go
|
@ -11,6 +11,14 @@ import (
|
|||
"unsafe"
|
||||
)
|
||||
|
||||
// SubmoduleUpdateOptions
|
||||
type SubmoduleUpdateOptions struct {
|
||||
*CheckoutOpts
|
||||
*RemoteCallbacks
|
||||
CloneCheckoutStrategy CheckoutStrategy
|
||||
Signature *Signature
|
||||
}
|
||||
|
||||
// Submodule
|
||||
type Submodule struct {
|
||||
ptr *C.git_submodule
|
||||
|
@ -20,10 +28,10 @@ type SubmoduleUpdate int
|
|||
|
||||
const (
|
||||
SubmoduleUpdateReset SubmoduleUpdate = C.GIT_SUBMODULE_UPDATE_RESET
|
||||
SubmoduleUpdateCheckout SubmoduleUpdate = C.GIT_SUBMODULE_UPDATE_CHECKOUT
|
||||
SubmoduleUpdateRebase SubmoduleUpdate = C.GIT_SUBMODULE_UPDATE_REBASE
|
||||
SubmoduleUpdateMerge SubmoduleUpdate = C.GIT_SUBMODULE_UPDATE_MERGE
|
||||
SubmoduleUpdateNone SubmoduleUpdate = C.GIT_SUBMODULE_UPDATE_NONE
|
||||
SubmoduleUpdateCheckout SubmoduleUpdate = C.GIT_SUBMODULE_UPDATE_CHECKOUT
|
||||
SubmoduleUpdateRebase SubmoduleUpdate = C.GIT_SUBMODULE_UPDATE_REBASE
|
||||
SubmoduleUpdateMerge SubmoduleUpdate = C.GIT_SUBMODULE_UPDATE_MERGE
|
||||
SubmoduleUpdateNone SubmoduleUpdate = C.GIT_SUBMODULE_UPDATE_NONE
|
||||
)
|
||||
|
||||
type SubmoduleIgnore int
|
||||
|
@ -226,8 +234,8 @@ func (sub *Submodule) SetIgnore(ignore SubmoduleIgnore) SubmoduleIgnore {
|
|||
return SubmoduleIgnore(o)
|
||||
}
|
||||
|
||||
func (sub *Submodule) Update() SubmoduleUpdate {
|
||||
o := C.git_submodule_update(sub.ptr)
|
||||
func (sub *Submodule) UpdateStrategy() SubmoduleUpdate {
|
||||
o := C.git_submodule_update_strategy(sub.ptr)
|
||||
return SubmoduleUpdate(o)
|
||||
}
|
||||
|
||||
|
@ -307,3 +315,31 @@ func (repo *Repository) ReloadAllSubmodules(force bool) error {
|
|||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (sub *Submodule) Update(init bool, opts *SubmoduleUpdateOptions) error {
|
||||
var copts C.git_submodule_update_options
|
||||
populateSubmoduleUpdateOptions(&copts, opts)
|
||||
|
||||
runtime.LockOSThread()
|
||||
defer runtime.UnlockOSThread()
|
||||
|
||||
ret := C.git_submodule_update(sub.ptr, cbool(init), &copts)
|
||||
if ret < 0 {
|
||||
return MakeGitError(ret)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func populateSubmoduleUpdateOptions(ptr *C.git_submodule_update_options, opts *SubmoduleUpdateOptions) {
|
||||
C.git_submodule_update_init_options(ptr, C.GIT_SUBMODULE_UPDATE_OPTIONS_VERSION)
|
||||
|
||||
if opts == nil {
|
||||
return
|
||||
}
|
||||
|
||||
populateCheckoutOpts(&ptr.checkout_opts, opts.CheckoutOpts)
|
||||
populateRemoteCallbacks(&ptr.remote_callbacks, opts.RemoteCallbacks)
|
||||
ptr.clone_checkout_strategy = C.uint(opts.CloneCheckoutStrategy)
|
||||
ptr.signature = opts.Signature.toC()
|
||||
}
|
||||
|
|
|
@ -1 +1 @@
|
|||
Subproject commit 55d9c29aa0c69cdd766c5100fc012d8e0b486e23
|
||||
Subproject commit 1646412d8fc9e1532a194df2515e9a5fde4da988
|
Loading…
Reference in New Issue