summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Martín Nieto <cmn@dwim.me>2014-11-03 22:27:11 +0100
committerCarlos Martín Nieto <cmn@dwim.me>2014-11-03 22:27:11 +0100
commit3f8d005a82b39c504220d65b6a6aa696c3b1a9c4 (patch)
tree4269bc7672bd7b0c2b25b49c8578219d68dd7223
parentde0c4555da57cddd1ea7eb47db87ca515dbe66ed (diff)
parentcce27d8242aa4d74324557e5c9f54fb4b67d7ec9 (diff)
downloadlibgit2-3f8d005a82b39c504220d65b6a6aa696c3b1a9c4.tar.gz
Merge pull request #2686 from ethomson/rename_notfound
Propogate GIT_ENOTFOUND from git_remote_rename
-rw-r--r--src/remote.c2
-rw-r--r--tests/network/remote/rename.c9
2 files changed, 10 insertions, 1 deletions
diff --git a/src/remote.c b/src/remote.c
index d346fb328..c98c160ee 100644
--- a/src/remote.c
+++ b/src/remote.c
@@ -1677,7 +1677,7 @@ int git_remote_rename(git_strarray *out, git_repository *repo, const char *name,
assert(out && repo && name && new_name);
if ((error = git_remote_load(&remote, repo, name)) < 0)
- return -1;
+ return error;
if ((error = ensure_remote_name_is_valid(new_name)) < 0)
goto cleanup;
diff --git a/tests/network/remote/rename.c b/tests/network/remote/rename.c
index e1aea0297..49929a470 100644
--- a/tests/network/remote/rename.c
+++ b/tests/network/remote/rename.c
@@ -200,6 +200,15 @@ void test_network_remote_rename__overwrite_ref_in_target(void)
git_branch_iterator_free(iter);
}
+void test_network_remote_rename__nonexistent_returns_enotfound(void)
+{
+ git_strarray problems = {0};
+
+ int err = git_remote_rename(&problems, _repo, "nonexistent", "renamed");
+
+ cl_assert_equal_i(GIT_ENOTFOUND, err);
+}
+
void test_network_remote_rename__symref_head(void)
{
int error;