summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJesse Ezell <[email protected]>2014-03-20 02:06:56 -0700
committerJesse Ezell <[email protected]>2014-03-20 20:32:15 -0700
commit99d7f66477aa09915821659087da8b91e593f4eb (patch)
tree865fec7a8f6c9d8908c775e0d91a63391edb2585
parent574f0dd12da2eae6f26ae35f197b2ec7a9328249 (diff)
add remote list
-rw-r--r--remote.go12
-rw-r--r--remote_test.go20
2 files changed, 32 insertions, 0 deletions
diff --git a/remote.go b/remote.go
index d556f99..d675ab8 100644
--- a/remote.go
+++ b/remote.go
@@ -132,6 +132,18 @@ func (r *Remote) Free() {
C.git_remote_free(r.ptr)
}
+func (repo *Repository) ListRemotes() ([]string, error) {
+ var r C.git_strarray
+ ecode := C.git_remote_list(&r, repo.ptr)
+ if ecode < 0 {
+ return make([]string, 0), MakeGitError(ecode)
+ }
+ defer C.git_strarray_free(&r)
+
+ remotes := makeStringsFromCStrings(r.strings, int(r.count))
+ return remotes, nil
+}
+
func (repo *Repository) CreateRemote(name string, url string) (*Remote, error) {
remote := &Remote{}
diff --git a/remote_test.go b/remote_test.go
index 04b3a57..90e24ae 100644
--- a/remote_test.go
+++ b/remote_test.go
@@ -8,6 +8,7 @@ import (
func TestRefspecs(t *testing.T) {
repo := createTestRepo(t)
defer os.RemoveAll(repo.Workdir())
+ defer repo.Free()
remote, err := repo.CreateRemoteInMemory("refs/heads/*:refs/heads/*", "git://foo/bar")
checkFatal(t, err)
@@ -25,3 +26,22 @@ func TestRefspecs(t *testing.T) {
compareStringList(t, expected, actual)
}
+
+func TestListRemotes(t *testing.T) {
+ repo := createTestRepo(t)
+ defer os.RemoveAll(repo.Workdir())
+ defer repo.Free()
+
+ _, err := repo.CreateRemote("test", "git://foo/bar")
+
+ checkFatal(t, err)
+
+ expected := []string{
+ "test",
+ }
+
+ actual, err := repo.ListRemotes()
+ checkFatal(t, err)
+
+ compareStringList(t, expected, actual)
+}