diff options
| author | Carlos Martín Nieto <[email protected]> | 2014-03-21 05:29:05 +0100 |
|---|---|---|
| committer | Carlos Martín Nieto <[email protected]> | 2014-03-21 05:29:05 +0100 |
| commit | b86977566540e2b8bea0ebba194445b98c0dc19f (patch) | |
| tree | f3ccf450fb7699b907c517cf4218bee70ce04333 | |
| parent | 574f0dd12da2eae6f26ae35f197b2ec7a9328249 (diff) | |
| parent | 5d8db7f9362a314cf56747cf23605aec8640e92e (diff) | |
Merge pull request #70 from jezell/add-remote-list
Add git_remote_list + test
| -rw-r--r-- | remote.go | 12 | ||||
| -rw-r--r-- | remote_test.go | 20 |
2 files changed, 32 insertions, 0 deletions
@@ -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) +} |
