remote: remove fetch parameter from create_anonymous An anonymous remote is not configured and cannot therefore have configured refspecs. Remove the parameter which adds this from the constructor.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165
diff --git a/CHANGELOG.md b/CHANGELOG.md
index f9ec250..f226cda 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -183,6 +183,9 @@ support for HTTPS connections insead of OpenSSL.
well as a boolean whether to write `FETCH_HEAD` and the autotag
setting.
+* `git_remote_create_anonymous()` no longer takes a fetch refspec as
+ url-only remotes cannot have configured refspecs.
+
* The `git_submodule_update_options` struct now has fetch options in
the `fetch_opts` field instead of callbacks in the
`remote_callbacks` field.
diff --git a/examples/network/fetch.c b/examples/network/fetch.c
index e47f5be..67444cb 100644
--- a/examples/network/fetch.c
+++ b/examples/network/fetch.c
@@ -92,7 +92,7 @@ int fetch(git_repository *repo, int argc, char **argv)
// Figure out whether it's a named remote or a URL
printf("Fetching %s for repo %p\n", argv[1], repo);
if (git_remote_lookup(&remote, repo, argv[1]) < 0) {
- if (git_remote_create_anonymous(&remote, repo, argv[1], NULL) < 0)
+ if (git_remote_create_anonymous(&remote, repo, argv[1]) < 0)
return -1;
}
diff --git a/examples/network/ls-remote.c b/examples/network/ls-remote.c
index a260922..2102656 100644
--- a/examples/network/ls-remote.c
+++ b/examples/network/ls-remote.c
@@ -15,7 +15,7 @@ static int use_remote(git_repository *repo, char *name)
// Find the remote by name
error = git_remote_lookup(&remote, repo, name);
if (error < 0) {
- error = git_remote_create_anonymous(&remote, repo, name, NULL);
+ error = git_remote_create_anonymous(&remote, repo, name);
if (error < 0)
goto cleanup;
}
diff --git a/include/git2/remote.h b/include/git2/remote.h
index 36e9deb..86498a3 100644
--- a/include/git2/remote.h
+++ b/include/git2/remote.h
@@ -63,24 +63,18 @@ GIT_EXTERN(int) git_remote_create_with_fetchspec(
/**
* Create an anonymous remote
*
- * Create a remote with the given url and refspec in memory. You can use
- * this when you have a URL instead of a remote's name. Note that anonymous
- * remotes cannot be converted to persisted remotes.
+ * Create a remote with the given url in-memory. You can use this when
+ * you have a URL instead of a remote's name.
*
- * The name, when provided, will be checked for validity.
- * See `git_tag_create()` for rules about valid names.
- *
- * @param out pointer to the new remote object
+ * @param out pointer to the new remote objects
* @param repo the associated repository
* @param url the remote repository's URL
- * @param fetch the fetch refspec to use for this remote.
* @return 0 or an error code
*/
GIT_EXTERN(int) git_remote_create_anonymous(
git_remote **out,
git_repository *repo,
- const char *url,
- const char *fetch);
+ const char *url);
/**
* Get the information for a particular remote
diff --git a/src/remote.c b/src/remote.c
index c561ecd..d58927f 100644
--- a/src/remote.c
+++ b/src/remote.c
@@ -311,9 +311,9 @@ on_error:
return -1;
}
-int git_remote_create_anonymous(git_remote **out, git_repository *repo, const char *url, const char *fetch)
+int git_remote_create_anonymous(git_remote **out, git_repository *repo, const char *url)
{
- return create_internal(out, repo, NULL, url, fetch);
+ return create_internal(out, repo, NULL, url, NULL);
}
int git_remote_dup(git_remote **dest, git_remote *source)
diff --git a/tests/network/remote/local.c b/tests/network/remote/local.c
index 9d96184..5d726c9 100644
--- a/tests/network/remote/local.c
+++ b/tests/network/remote/local.c
@@ -39,7 +39,7 @@ static void connect_to_local_repository(const char *local_repository)
{
git_buf_sets(&file_path_buf, cl_git_path_url(local_repository));
- cl_git_pass(git_remote_create_anonymous(&remote, repo, git_buf_cstr(&file_path_buf), NULL));
+ cl_git_pass(git_remote_create_anonymous(&remote, repo, git_buf_cstr(&file_path_buf)));
cl_git_pass(git_remote_connect(remote, GIT_DIRECTION_FETCH, NULL));
}
@@ -71,7 +71,7 @@ void test_network_remote_local__retrieve_advertised_before_connect(void)
git_buf_sets(&file_path_buf, cl_git_path_url(cl_fixture("testrepo.git")));
- cl_git_pass(git_remote_create_anonymous(&remote, repo, git_buf_cstr(&file_path_buf), NULL));
+ cl_git_pass(git_remote_create_anonymous(&remote, repo, git_buf_cstr(&file_path_buf)));
cl_git_fail(git_remote_ls(&refs, &refs_len, remote));
}
@@ -213,7 +213,7 @@ void test_network_remote_local__push_to_bare_remote(void)
}
/* Connect to the bare repo */
- cl_git_pass(git_remote_create_anonymous(&localremote, repo, "./localbare.git", NULL));
+ cl_git_pass(git_remote_create_anonymous(&localremote, repo, "./localbare.git"));
cl_git_pass(git_remote_connect(localremote, GIT_DIRECTION_PUSH, NULL));
/* Try to push */
@@ -252,7 +252,7 @@ void test_network_remote_local__push_to_bare_remote_with_file_url(void)
url = cl_git_path_url("./localbare.git");
/* Connect to the bare repo */
- cl_git_pass(git_remote_create_anonymous(&localremote, repo, url, NULL));
+ cl_git_pass(git_remote_create_anonymous(&localremote, repo, url));
cl_git_pass(git_remote_connect(localremote, GIT_DIRECTION_PUSH, NULL));
/* Try to push */
@@ -289,7 +289,7 @@ void test_network_remote_local__push_to_non_bare_remote(void)
}
/* Connect to the bare repo */
- cl_git_pass(git_remote_create_anonymous(&localremote, repo, "./localnonbare", NULL));
+ cl_git_pass(git_remote_create_anonymous(&localremote, repo, "./localnonbare"));
cl_git_pass(git_remote_connect(localremote, GIT_DIRECTION_PUSH, NULL));
/* Try to push */
diff --git a/tests/network/remote/remotes.c b/tests/network/remote/remotes.c
index f81c1cc..8619f2e 100644
--- a/tests/network/remote/remotes.c
+++ b/tests/network/remote/remotes.c
@@ -90,7 +90,7 @@ void test_network_remote_remotes__error_when_no_push_available(void)
};
- cl_git_pass(git_remote_create_anonymous(&r, _repo, cl_fixture("testrepo.git"), NULL));
+ cl_git_pass(git_remote_create_anonymous(&r, _repo, cl_fixture("testrepo.git")));
callbacks.transport = git_transport_local;
cl_git_pass(git_remote_connect(r, GIT_DIRECTION_PUSH, &callbacks));
@@ -465,13 +465,3 @@ void test_network_remote_remotes__query_refspecs(void)
git_remote_free(remote);
git_remote_delete(_repo, "test");
}
-
-void test_network_remote_remotes__fetch_from_anonymous(void)
-{
- git_remote *remote;
-
- cl_git_pass(git_remote_create_anonymous(&remote, _repo, cl_fixture("testrepo.git"),
- "refs/heads/*:refs/other/*"));
- cl_git_pass(git_remote_fetch(remote, NULL, NULL, NULL));
- git_remote_free(remote);
-}