summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Martín Nieto <[email protected]>2014-03-21 05:29:05 +0100
committerCarlos Martín Nieto <[email protected]>2014-03-21 05:29:05 +0100
commitb86977566540e2b8bea0ebba194445b98c0dc19f (patch)
treef3ccf450fb7699b907c517cf4218bee70ce04333
parent574f0dd12da2eae6f26ae35f197b2ec7a9328249 (diff)
parent5d8db7f9362a314cf56747cf23605aec8640e92e (diff)
Merge pull request #70 from jezell/add-remote-list
Add git_remote_list + test
-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..66097b8 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 nil, 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)
+}