diff options
| author | Mirko Nosenzo <[email protected]> | 2016-05-29 14:44:29 +0200 |
|---|---|---|
| committer | Mirko Nosenzo <[email protected]> | 2016-05-29 14:59:17 +0200 |
| commit | 393098522c3f01b1cd765581c4d4e6d43f3a02d0 (patch) | |
| tree | a255a371910de96d97026bad4e05516e7471dacd /remote.go | |
| parent | 8eaae73f85dd3df78df80d2dac066eb0866444ae (diff) | |
Remote Refinements
- Fixed credentialsCallback return value for missing callback
- Added Remote Rename
- Added Remote Disconnect
Diffstat (limited to 'remote.go')
| -rw-r--r-- | remote.go | 28 |
1 files changed, 27 insertions, 1 deletions
@@ -215,7 +215,7 @@ func completionCallback(completion_type C.git_remote_completion_type, data unsaf func credentialsCallback(_cred **C.git_cred, _url *C.char, _username_from_url *C.char, allowed_types uint, data unsafe.Pointer) int { callbacks, _ := pointerHandles.Get(data).(*RemoteCallbacks) if callbacks.CredentialsCallback == nil { - return 0 + return C.GIT_PASSTHROUGH } url := C.GoString(_url) username_from_url := C.GoString(_username_from_url) @@ -454,6 +454,25 @@ func (o *Remote) PushUrl() string { return C.GoString(C.git_remote_pushurl(o.ptr)) } +func (c *RemoteCollection) Rename(remote, newname string) error { + cproblems := C.git_strarray{} + + cnewname := C.CString(newname) + defer C.free(unsafe.Pointer(cnewname)) + cremote := C.CString(remote) + defer C.free(unsafe.Pointer(cremote)) + + runtime.LockOSThread() + defer runtime.UnlockOSThread() + + ret := C.git_remote_rename(&cproblems, c.repo.ptr, cremote, cnewname) + if ret < 0 { + return MakeGitError(ret) + } + C.git_strarray_free(&cproblems) + return nil +} + func (c *RemoteCollection) SetUrl(remote, url string) error { curl := C.CString(url) defer C.free(unsafe.Pointer(curl)) @@ -687,6 +706,13 @@ func (o *Remote) Connect(direction ConnectDirection, callbacks *RemoteCallbacks, return nil } +func (o *Remote) Disconnect() { + runtime.LockOSThread() + defer runtime.UnlockOSThread() + + C.git_remote_disconnect(o.ptr) +} + func (o *Remote) Ls(filterRefs ...string) ([]RemoteHead, error) { var refs **C.git_remote_head |
