summaryrefslogtreecommitdiff
path: root/remote.go
diff options
context:
space:
mode:
authorDavid Calavera <[email protected]>2015-01-05 11:58:36 -0800
committerDavid Calavera <[email protected]>2015-01-05 11:58:36 -0800
commitdbddb88a8cf1302049bcfaccf25aba21b2224f10 (patch)
tree234f24fc2df63ac6364f9b7055a1b28e111ad8b7 /remote.go
parentd57246fb74404ed8b18d0d26d2b02b326ffd2cbe (diff)
Add prune methods to Remote.
Diffstat (limited to 'remote.go')
-rw-r--r--remote.go24
1 files changed, 18 insertions, 6 deletions
diff --git a/remote.go b/remote.go
index 3dc22a1..2684c20 100644
--- a/remote.go
+++ b/remote.go
@@ -69,7 +69,6 @@ type RemoteCallbacks struct {
PushUpdateReferenceCallback
}
-
type Remote struct {
ptr *C.git_remote
callbacks RemoteCallbacks
@@ -259,8 +258,6 @@ func pushUpdateReferenceCallback(refname, status *C.char, data unsafe.Pointer) i
return int(callbacks.PushUpdateReferenceCallback(C.GoString(refname), C.GoString(status)))
}
-
-
func RemoteIsValidName(name string) bool {
cname := C.CString(name)
defer C.free(unsafe.Pointer(cname))
@@ -330,7 +327,7 @@ func (repo *Repository) CreateRemote(name string, url string) (*Remote, error) {
func (repo *Repository) DeleteRemote(name string) error {
cname := C.CString(name)
defer C.free(unsafe.Pointer(cname))
-
+
runtime.LockOSThread()
defer runtime.UnlockOSThread()
@@ -722,8 +719,8 @@ func (o *Remote) Push(refspecs []string, opts *PushOptions, sig *Signature, msg
crefspecs.strings = makeCStringsFromStrings(refspecs)
defer freeStrarray(&crefspecs)
- runtime.LockOSThread()
- defer runtime.UnlockOSThread()
+ runtime.LockOSThread()
+ defer runtime.UnlockOSThread()
ret := C.git_remote_push(o.ptr, &crefspecs, &copts, csig, cmsg)
if ret < 0 {
@@ -731,3 +728,18 @@ func (o *Remote) Push(refspecs []string, opts *PushOptions, sig *Signature, msg
}
return nil
}
+
+func (o *Remote) PruneRefs() bool {
+ return C.git_remote_prune_refs(o.ptr) > 0
+}
+
+func (o *Remote) Prune() error {
+ runtime.LockOSThread()
+ defer runtime.UnlockOSThread()
+
+ ret := C.git_remote_prune(o.ptr)
+ if ret < 0 {
+ return MakeGitError(ret)
+ }
+ return nil
+}