summaryrefslogtreecommitdiff
path: root/src/remote.c
diff options
context:
space:
mode:
authorEdward Thomson <ethomson@edwardthomson.com>2014-10-10 12:21:28 -0400
committerEdward Thomson <ethomson@edwardthomson.com>2014-10-10 12:21:28 -0400
commita6ed1fcbe1dbd78dbfd83da3dcff12ed37134e96 (patch)
tree3d964f1f0419a3757d753c88a5f0e338e39e8b4d /src/remote.c
parentbab92a8dcf66d93afb41c946c238841df74fff0e (diff)
parent262eec23fe7377a9eecf9e724fa1aba945b3162a (diff)
downloadlibgit2-a6ed1fcbe1dbd78dbfd83da3dcff12ed37134e96.tar.gz
Merge pull request #2593 from libgit2/cmn/remote-delete-name
remote: accept a repository and remote name for deletion
Diffstat (limited to 'src/remote.c')
-rw-r--r--src/remote.c24
1 files changed, 5 insertions, 19 deletions
diff --git a/src/remote.c b/src/remote.c
index 10b56243f..8d928a5b8 100644
--- a/src/remote.c
+++ b/src/remote.c
@@ -2028,29 +2028,15 @@ static int remove_remote_tracking(git_repository *repo, const char *remote_name)
return error;
}
-int git_remote_delete(git_remote *remote)
+int git_remote_delete(git_repository *repo, const char *name)
{
int error;
- git_repository *repo;
-
- assert(remote);
- if (!remote->name) {
- giterr_set(GITERR_INVALID, "Can't delete an anonymous remote.");
- return -1;
- }
-
- repo = git_remote_owner(remote);
-
- if ((error = remove_branch_config_related_entries(repo,
- git_remote_name(remote))) < 0)
- return error;
-
- if ((error = remove_remote_tracking(repo, git_remote_name(remote))) < 0)
- return error;
+ assert(repo && name);
- if ((error = rename_remote_config_section(
- repo, git_remote_name(remote), NULL)) < 0)
+ if ((error = remove_branch_config_related_entries(repo, name)) < 0 ||
+ (error = remove_remote_tracking(repo, name)) < 0 ||
+ (error = rename_remote_config_section(repo, name, NULL)) < 0)
return error;
return 0;