Provide method for deleting a remote

Fixes #418
This commit is contained in:
Carlos Martín Nieto
2014-09-04 15:57:05 +02:00
parent 5d8c108fe7
commit a3e7a115f4
3 changed files with 20 additions and 0 deletions

View File

@@ -129,6 +129,7 @@ int git_remote_create(
git_repository *repo,
const char *name,
const char *url);
int git_remote_delete(git_remote *remote);
int git_repository_state_cleanup(git_repository *repo);
const char * git_remote_name(const git_remote *remote);

View File

@@ -177,6 +177,14 @@ class Remote(object):
err = C.git_remote_set_pushurl(self._remote, to_bytes(value))
check_error(err)
def delete(self):
"""Remove this remote
All remote-tracking branches and configuration settings for the remote will be removed.
"""
err = C.git_remote_delete(self._remote)
check_error(err)
def save(self):
"""save()

View File

@@ -62,6 +62,17 @@ class RepositoryTest(utils.RepoTestCase):
self.assertRaises(ValueError, self.repo.create_remote, *(name, url))
def test_remote_delete(self):
name = 'upstream'
url = 'git://github.com/libgit2/pygit2.git'
self.repo.create_remote(name, url)
self.assertEqual(2, len(self.repo.remotes))
remote = self.repo.remotes[1]
self.assertEqual(name, remote.name)
remote.delete()
self.assertEqual(1, len(self.repo.remotes))
def test_remote_rename(self):
remote = self.repo.remotes[0]