diff options
| author | Carlos Martín Nieto <cmn@dwim.me> | 2014-09-30 16:07:30 +0200 |
|---|---|---|
| committer | Carlos Martín Nieto <cmn@dwim.me> | 2014-09-30 16:09:55 +0200 |
| commit | 262eec23fe7377a9eecf9e724fa1aba945b3162a (patch) | |
| tree | 93487fe48d9a51c2ceb993cb7dc6821ca0407a70 /src | |
| parent | a2a23322193eeca5d2912c0b74c5374f8ec21737 (diff) | |
| download | libgit2-262eec23fe7377a9eecf9e724fa1aba945b3162a.tar.gz | |
remote: accept a repository and remote name for deletioncmn/remote-delete-name
We don't need the remote loaded, and the function extracted both of
these from the git_remote in order to do its work, so let's remote a
step and not ask for the loaded remote at all.
This fixes #2390.
Diffstat (limited to 'src')
| -rw-r--r-- | src/remote.c | 24 |
1 files changed, 5 insertions, 19 deletions
diff --git a/src/remote.c b/src/remote.c index dfad946d5..159524c2e 100644 --- a/src/remote.c +++ b/src/remote.c @@ -1902,29 +1902,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; |
