diff options
author | Ben Straub <bs@github.com> | 2013-04-23 12:28:59 -0700 |
---|---|---|
committer | Ben Straub <bs@github.com> | 2013-04-23 12:28:59 -0700 |
commit | bd0a07f4bb0b83a84127589f7385eb2309910b66 (patch) | |
tree | 19ecda9ac464999a22cd7a1e186a73c567d430c6 | |
parent | 495d6f07c44c48e9968eb82f65c3336ba1922398 (diff) | |
download | libgit2-bd0a07f4bb0b83a84127589f7385eb2309910b66.tar.gz |
Clone: replace fetch spec with custom value
-rw-r--r-- | src/clone.c | 8 | ||||
-rw-r--r-- | tests-clar/clone/nonetwork.c | 2 |
2 files changed, 6 insertions, 4 deletions
diff --git a/src/clone.c b/src/clone.c index 8f10ca819..0665576e3 100644 --- a/src/clone.c +++ b/src/clone.c @@ -323,9 +323,11 @@ static int create_and_configure_origin( (error = git_remote_set_callbacks(origin, options->remote_callbacks)) < 0) goto on_error; - if (options->fetch_spec && - (error = git_remote_add_fetch(origin, options->fetch_spec)) < 0) - goto on_error; + if (options->fetch_spec) { + git_remote_clear_refspecs(origin); + if ((error = git_remote_add_fetch(origin, options->fetch_spec)) < 0) + goto on_error; + } if (options->push_spec && (error = git_remote_add_push(origin, options->push_spec)) < 0) diff --git a/tests-clar/clone/nonetwork.c b/tests-clar/clone/nonetwork.c index 506673737..02066e07d 100644 --- a/tests-clar/clone/nonetwork.c +++ b/tests-clar/clone/nonetwork.c @@ -149,7 +149,7 @@ void test_clone_nonetwork__custom_fetch_spec(void) cl_git_pass(git_clone(&g_repo, cl_git_fixture_url("testrepo.git"), "./foo", &g_options)); cl_git_pass(git_remote_load(&g_remote, g_repo, "origin")); - actual_fs = git_vector_get(&g_remote->refspecs, g_remote->refspecs.length - 1); + actual_fs = git_vector_get(&g_remote->refspecs, 0); cl_assert_equal_s("refs/heads/master", git_refspec_src(actual_fs)); cl_assert_equal_s("refs/heads/foo", git_refspec_dst(actual_fs)); |