mirror of
https://git.proxmox.com/git/libgit2
synced 2025-05-03 02:40:09 +00:00
remote: get rid of the run-time refspec setters
These were left over from the culling as it's not clear which use-cases might benefit from this. It is not clear that we want to support any use-case which depends on changing the remote's idea of the base refspecs rather than passing in different per-operation refspec list, so remove these functions.
This commit is contained in:
parent
7b5ce2e5c4
commit
70f7484d2a
@ -97,6 +97,10 @@ support for HTTPS connections insead of OpenSSL.
|
|||||||
`git_remote_set_transport()` have been removed and the remote no
|
`git_remote_set_transport()` have been removed and the remote no
|
||||||
longer stores this configuration.
|
longer stores this configuration.
|
||||||
|
|
||||||
|
* `git_remote_set_fetch_refpecs()` and
|
||||||
|
`git_remote_set_push_refspecs()` have been removed. There is no
|
||||||
|
longer a way to set the base refspecs at run-time.
|
||||||
|
|
||||||
### Breaking API changes
|
### Breaking API changes
|
||||||
|
|
||||||
* `git_smart_subtransport_cb` now has a `param` parameter.
|
* `git_smart_subtransport_cb` now has a `param` parameter.
|
||||||
|
@ -189,16 +189,6 @@ GIT_EXTERN(int) git_remote_add_fetch(git_repository *repo, const char *remote, c
|
|||||||
*/
|
*/
|
||||||
GIT_EXTERN(int) git_remote_get_fetch_refspecs(git_strarray *array, const git_remote *remote);
|
GIT_EXTERN(int) git_remote_get_fetch_refspecs(git_strarray *array, const git_remote *remote);
|
||||||
|
|
||||||
/**
|
|
||||||
* Set the remote's list of fetch refspecs
|
|
||||||
*
|
|
||||||
* The contents of the string array are copied.
|
|
||||||
*
|
|
||||||
* @param remote the remote to modify
|
|
||||||
* @param array the new list of fetch resfpecs
|
|
||||||
*/
|
|
||||||
GIT_EXTERN(int) git_remote_set_fetch_refspecs(git_remote *remote, git_strarray *array);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a push refspec to the remote's configuration
|
* Add a push refspec to the remote's configuration
|
||||||
*
|
*
|
||||||
@ -223,16 +213,6 @@ GIT_EXTERN(int) git_remote_add_push(git_repository *repo, const char *remote, co
|
|||||||
*/
|
*/
|
||||||
GIT_EXTERN(int) git_remote_get_push_refspecs(git_strarray *array, const git_remote *remote);
|
GIT_EXTERN(int) git_remote_get_push_refspecs(git_strarray *array, const git_remote *remote);
|
||||||
|
|
||||||
/**
|
|
||||||
* Set the remote's list of push refspecs
|
|
||||||
*
|
|
||||||
* The contents of the string array are copied.
|
|
||||||
*
|
|
||||||
* @param remote the remote to modify
|
|
||||||
* @param array the new list of push resfpecs
|
|
||||||
*/
|
|
||||||
GIT_EXTERN(int) git_remote_set_push_refspecs(git_remote *remote, git_strarray *array);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the number of refspecs for a remote
|
* Get the number of refspecs for a remote
|
||||||
*
|
*
|
||||||
|
28
src/remote.c
28
src/remote.c
@ -318,8 +318,9 @@ int git_remote_create_anonymous(git_remote **out, git_repository *repo, const ch
|
|||||||
|
|
||||||
int git_remote_dup(git_remote **dest, git_remote *source)
|
int git_remote_dup(git_remote **dest, git_remote *source)
|
||||||
{
|
{
|
||||||
|
size_t i;
|
||||||
int error = 0;
|
int error = 0;
|
||||||
git_strarray refspecs = { 0 };
|
git_refspec *spec;
|
||||||
git_remote *remote = git__calloc(1, sizeof(git_remote));
|
git_remote *remote = git__calloc(1, sizeof(git_remote));
|
||||||
GITERR_CHECK_ALLOC(remote);
|
GITERR_CHECK_ALLOC(remote);
|
||||||
|
|
||||||
@ -349,22 +350,15 @@ int git_remote_dup(git_remote **dest, git_remote *source)
|
|||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((error = git_remote_get_fetch_refspecs(&refspecs, source)) < 0 ||
|
git_vector_foreach(&source->refspecs, i, spec) {
|
||||||
(error = git_remote_set_fetch_refspecs(remote, &refspecs)) < 0)
|
if ((error = add_refspec(remote, spec->string, !spec->push)) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
}
|
||||||
git_strarray_free(&refspecs);
|
|
||||||
|
|
||||||
if ((error = git_remote_get_push_refspecs(&refspecs, source)) < 0 ||
|
|
||||||
(error = git_remote_set_push_refspecs(remote, &refspecs)) < 0)
|
|
||||||
goto cleanup;
|
|
||||||
|
|
||||||
*dest = remote;
|
*dest = remote;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
|
|
||||||
git_strarray_free(&refspecs);
|
|
||||||
|
|
||||||
if (error < 0)
|
if (error < 0)
|
||||||
git__free(remote);
|
git__free(remote);
|
||||||
|
|
||||||
@ -2046,16 +2040,6 @@ static int set_refspecs(git_remote *remote, git_strarray *array, int push)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int git_remote_set_fetch_refspecs(git_remote *remote, git_strarray *array)
|
|
||||||
{
|
|
||||||
return set_refspecs(remote, array, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
int git_remote_set_push_refspecs(git_remote *remote, git_strarray *array)
|
|
||||||
{
|
|
||||||
return set_refspecs(remote, array, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
static int copy_refspecs(git_strarray *array, const git_remote *remote, unsigned int push)
|
static int copy_refspecs(git_strarray *array, const git_remote *remote, unsigned int push)
|
||||||
{
|
{
|
||||||
size_t i;
|
size_t i;
|
||||||
|
Loading…
Reference in New Issue
Block a user